Real-time software is software die binnen een specifieke, beperkte tijd op input moet reageren. Deze beperking is cruciaal voor het functioneren ervan, en het niet halen van deadlines kan ernstige gevolgen hebben. Deze gevolgen variëren van kleine ongemakken (een lichte hapering in een videogame) tot catastrofale storingen (een defect vliegtuigbesturingssysteem).
Hier is een overzicht van de belangrijkste kenmerken:
* Tijdkriticiteit: Het bepalende kenmerk. De software moet binnen een vooraf bepaald tijdsbestek op gebeurtenissen reageren. Dit tijdsbestek is vaak erg kort, gemeten in milliseconden of zelfs microseconden.
* Deterministisch gedrag: De responstijd moet voorspelbaar en consistent zijn. De software mag geen onvoorspelbare vertragingen of vertragingen vertonen.
* Betrouwbaarheid: Een hoge betrouwbaarheid is essentieel. Storingen kunnen ernstige gevolgen hebben, dus de software moet robuust en fouttolerant zijn.
* Bronnenbeheer: Efficiënt resourcebeheer (CPU, geheugen, enz.) is van cruciaal belang om tijdige reacties te garanderen.
Realtimesoftware is onderverdeeld in twee hoofdtypen:
* Moeilijke realtime: Deze systemen hebben strikte deadlines waaraan *moet* worden voldaan. Het missen van een deadline wordt beschouwd als een mislukking, vaak met kritieke gevolgen. Voorbeelden zijn onder meer vluchtcontrolesystemen, medische apparatuur en industriële procescontrolesystemen.
* Zachte realtime: Deze systemen hebben deadlines waaraan *moet* worden voldaan, maar het missen van een deadline leidt niet tot catastrofale mislukkingen. In plaats daarvan gaan de prestaties van het systeem achteruit (bijvoorbeeld verminderde servicekwaliteit). Voorbeelden hiervan zijn videogames, multimediatoepassingen en enkele industriële robots.
Het is belangrijk op te merken dat zelfs "zachte" real-time systemen vaak strenge timingvereisten stellen. Hoewel een kleine vertraging aanvaardbaar kan zijn, maken aanzienlijke vertragingen het systeem onbruikbaar.
De ontwikkeling van real-time software omvat gespecialiseerde technieken en hulpmiddelen om de tijdigheid en betrouwbaarheid ervan te garanderen, vaak inclusief technieken voor planning, afhandeling van onderbrekingen en gelijktijdigheidscontrole. |