Reaaliaikainen käyttöjärjestelmä

Reaaliaikainen käyttöjärjestelmä (, RTOS) on käyttöjärjestelmätyyppi, joka noudattaa reaaliaikaisuuden vaatimuksia toiminnallisten vaatimuksien lisäksi. Reaaliaikainen käyttöjärjestelmän tavoitteisiin kuuluu aikarajan deterministinen noudattaminen.

Vaatimukset voidaan jakaa kahteen kategoriaan:
 pehmeä (soft real-time), palvelun laadun heikkeneminen kuten audiotoiston pätkiminen
 kova (hard real-time), täysi epäonnistuminen kuten sydämentahdistimen epäonnistuminen

Lisäksi toisinaan käytetään termiä jämäkkä (firm real-time) kun seuraukset eivät ole katastrofaalisia, mutta tulokset eivät ole toivottuja kuten tehtaan tuotantolaadun heikkeneminen.

Keskeinen suunnittelukohta on vaatimus vasteajan noudattamisesta: ajassa, jossa toiminnon on joko onnistuttava tai epäonnistuttava (deadline). 
Reaaliaikaisen järjestelmän ei tarvitse olla nopea, mutta sen on oltava luotettava ja reagoitava aina tietyn aikarajan sisällä.

Reaaliaikaiset järjestelmät vaativat takeen (guarantee) vasteajasta: tavallinenkin järjestelmä voi toimia aikarajan sisällä mutta se ei välttämättä ole taattua.

Esimerkkejä käyttökohteesta voivat olla Fly-by-wire järjestelmä ja lukkiutumattomat jarrut (ABS).

 Toteutustapoja 

Toteutustavat voidaan jakaa kahteen kategoriaan:
 tapahtumapohjainen (event-driven)
 aikajakava (time sharing, round-robin)

Aikajakavajärjestelmä voi olla tasaisempi moniajon kannalta, mutta voi käyttää enemmän resursseja kuin tarpeen mikäli järjestelmä käyttää paljon aikaa odottamiseen.

 Viestimekanismit 

Asynkroninen viestien välitys ja käsittely on menetelmä, jota voidaan käyttää kun halutaan varmistaa että haluttu toiminto ei pysäytä tehtävän suorittamista. 

Menetelmä tarkoittaa usein erillisiä säikeitä eri tehtäville.

 Synkronointi 
Synkronointi reaaliaikaisten käyttöjärjestelmien yhteydessä tyypillisesti tarkoittaa hallittua jaetun muistiosion käsittelyä. Koska sovellukset ovat tässä käyttöympäristössä luotettuja niille sallitaan laitteistokeskeytyksien kytkeminen pois päältä suojatun alueen ajaksi. Tarkoitukseen on myös kehitetty lukottomia menetelmiä.

 Osiointi 

Tehtävät osioidaan kriittisestä vähemmän kriittiseen siten, että alemman kriittisyystason epäonnistuminen ei voi keskeyttää korkeamman kriittisyystason tehtäviä. Menetelmää käytetään ilmailun ohjelmistojen toteuttamisessa.

Voidaan myös vaatia formaalia todistetta ohjelmakoodin oikeellisuudesta ja kaikkien syötteiden ja tilojen huomioimisesta toteutuksen toiminnassa.

 Standardeja 
Reaaliaikakäyttöjärjestelmiä koskevia standardeja:
 POSIX, etenkin RT-POSIX -laajennus
 OSEK/VDX, autoteollisuus
 ARINC-APEX, ARINC 653, ilmailu
 MICRO-ITRON, Industrial TRON, pienet sulautetut järjestelmät

 Reaaliaikakäyttöjärjestelmiä 

 iRMX
 LynxOS
 MQX
 MicroC/OS
 Nucleus RTOS
 pSOS
 QNX
 RSX-11
 RTEMS
 VAXELN
 VxWorks

 Katso myös 

 TRON
 DO-178B
 Turvakriittinen järjestelmä
 Jailhouse

 Lähteet 

 Aiheesta muualla 
 The Open Group Base Specifications 

*