Vormen van realtime gedragRealtime gedrag heeft diverse gedaanten. Het is belangrijk om na te gaan over welke vorm van realtime je het in een bepaalde situatie hebt.
Zie ook enkele voorbeelden van een scheduler. Er zijn diverse andere oplossingen te bedenken. Deze werkt met een tijd ten opzichte van de systeemtijd. Aan het begin van het programma wordt de systeemtijd opgevraagd en onthouden. Dat moment definieren we als tijdstip 0: zou je op exact hetzelfde moment de tijd nogmaals kunnen opvragen dan is het verschil tussen de huidige tijd en het begin van de tijdrekening 0 microseconden. De event queue wordt gevuld met een aantal events, alle voorzien van een timestamp die aangeeft "hoe laat" de event iets moet doen. De timestamps zijn relatief ten opzichte van tijdstip 0. Aan de andere kant van de queue lezen we een event. Als die volgens zijn timestamp al in actie moet komen (timestamp groter dan of gelijk aan de huidige relatieve tijd) dan wordt de actie uitgevoerd, de event uit de queue verwijderd en wordt de volgende event gelezen. Als de gelezen event nog niet in actie moet komen dan moeten we wachten tot het wel tijd is om in actie te komen. Dat kun je op een aantal manieren doen:
In enkele gevallen wil je events die al lang geleden afhandeld hadden moeten zijn niet meer gebruiken maar gewoon weggooien. |