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ä.