Siirry suoraan sisältöön

ReaaliaikaohjelmointiLaajuus (5 op)

Opintojakson tunnus: TT00AA36

Opintojakson perustiedot


Laajuus
5 op

Osaamistavoitteet

Opintojakson suoritettuaan opiskelija hallitsee käytännössä reaaliaikaohjelmistojen toteutukseen liittyvän tekniikan käyttöjärjestelmäkutsurajapinnan osalta ja pystyy ohjelmistokehitystyöhön ympäristössä, jossa systeemi muodostuu useista rinnakkain toimivista ja keskenään kommunikoivista prosesseista tai säikeistä. Hän osaa suunnitella ja toteuttaa reaaliaikasovelluksia, jotka toimivat luotettavasti ja joissa on varauduttu erilaisten asynkronisten tapausten aiheuttamiin ongelmatilanteisiin.

Asiat käsitellään standardin IEEE Std 1003.1-2001 (-2004, -2008) mukaisesti. Erityinen painotus kurssissa annetaan standardin reaaliaikajärjestelmiä koskeville laajennuksille, kuten timerit, reaaliaikasignaalit, asynkroninen i/o, semaforit, jaetut muistiobjektit jne.

Sisältö

Ohjelmankehitys Linux/Unix-ympäristössä
Käyttöjärjestelmän peruspalvelut sovellusohjelmille
Prosessit ja niiden vuorovaikutus
Prosessien synkronointitarve ja -välineet
Signaalit
Putket ja FIFOt
Asynkroninen ja multipleksattu i/o
Ajoitukset, timerit ja timeoutit
Semaforit
Jaettu muisti
Viestijonot
Säikeet ja niiden synkronointi
Soketit
Erilaiset skedulointipolitiikat

Esitietovaatimukset

Unix/Linux-peruskurssi
Ohjelmoinnin jatko (C)
Reaaliaikakäyttöjärjestelmä

Arviointikriteerit, tyydyttävä (1)

- Opiskelija ymmärtää miksi ja millä periaatteella tietokone voi suorittaa useita tehtäviä ”yhtä aikaa”.
- Opiskelija ymmärtää prosessin ja säikeen ominaisuudet ja erot.
- Opiskelija osaa kirjoittaa sovelluksen jossa käytetään prosesseja tai säikeitä.
- Opiskelija ymmärtää vuoronvaihdon mahdollisesti aiheuttamat ongelmat

Arviointikriteerit, hyvä (3)

- Opiskelija ymmärtää ”kilpailutilanteen” aiheuttamat ongelmat ja osaa välttää niiden aiheuttamat ongelmat.
- Opiskelija osaa välittää tietoa prosessien ja säikeiden välillä ja ymmärtää tiedon välittämiseen liittyvät synkronointiongelmat.
- Opiskelija osaa välttää synkronointiongelmat ainakin jollakin menelmällä.

Arviointikriteerit, kiitettävä (5)

- Opiskelija osaa arvioida erilaisten toteutustekniikoiden sopivuuden eri tilanteisiin ja valita kulloinkin tilanteeseen sopivan.
- Opiskelija osaa toteuttaa sovelluksen kaikilla POSIX-rajapinnan tarjoamilla tekniikoilla.
- Opiskelija osaa syvällisesti ja laaja-alaisesti pohtia mahdollisia sudenkuoppia reaaliaikasovelluksissa ja eliminoida niitä.

Siirry alkuun