1. Klokonderbreking
Een klokonderbreking vindt plaats met een regelmatig tijdsinterval, dat doorgaans wordt bepaald door de hardwareklok.
2. Doel van klokonderbrekingen
* Procesplanning :Klokonderbrekingen worden doorgaans gebruikt om langlopende processen te voorkomen en andere gereedstaande processen de kans te geven om te worden uitgevoerd.
* Het plannen van de werking van Daemons :Daemons zijn achtergrondtaken die voortdurend worden uitgevoerd in moderne besturingssystemen.
* Realtime toepassingen :Klokgestuurde planning maakt het gebruik van real-time applicaties mogelijk. Een real-time toepassing, zoals een multimediatoepassing, vereist dat de uitvoering ervan wordt gesynchroniseerd met de echte wereld, zodat de acties binnen gespecificeerde tijdsintervallen worden uitgevoerd.
* Multitasken en tijd delen :Klokonderbrekingen worden gebruikt ter ondersteuning van een multitasking-omgeving, waarbij meerdere taken gelijktijdig op één processor kunnen worden uitgevoerd. Met behulp van klokonderbreking wordt de CPU-tijd gedeeld tussen verschillende uitvoerende taken door middel van contextwisseling.
* Round-Robin-planning :Preventieve, op prioriteit gebaseerde planning kan profiteren van klokonderbrekingen om round-robin-planning te implementeren.
3. Hoe werkt het
De tijdsintervalduur tussen klokonderbrekingen wordt vaak een "tijdkwantum" of "tijdschijf" genoemd. Bijvoorbeeld in het populaire Linux besturingssysteem is het standaardtijdkwantum gewoonlijk 10 milliseconden (ms). Wanneer de uitvoering van een proces voor het eerst wordt gepland, registreert de hardwareklok de huidige systeemtijd. Vervolgens wordt het proces uitgevoerd. Vervolgens, zodra het vooraf gespecificeerde tijdsquantum is verstreken, vindt er een klokonderbreking plaats branden. De hardwareklok registreert opnieuw de systeemtijd en berekent de tijd die het proces heeft geduurd sinds de vorige klokonderbreking. Afhankelijk van het specifieke planningsbeleid laat de planner de uitvoering van het proces doorgaan of maakt hij er een voorschot op. |