elomax

[ Techniek ] [ Shop ] [ Site map
[ Routines ] Blokkeren ] Bronnen ] Afhandeling ] Voorbeeld ] Mutual exclusion ] Prioriteiten ]

Terug
Omhoog

Interrupt routines

Zoals bekend haalt de processor een instructie op, decodeert de instructie, en voert hem uit. Daarna wordt aan de volgende instructie begonnen. Het is door middel van een interrupt mogelijk, de processor tussen twee instructies in naar een andere plaats in het programma te dirigeren. Alsof er een speciaal soort 'JSR' instructie tussen twee instructies in het programma ingevoegd wordt, waardoor de processor naar een speciale subroutine (de 'interrupt routine') springt.

Wanneer de processor klaar is met het uitvoeren van de interrupt routine, keert hij terug naar de plaats in het programma waar de normale programma afloop onderbroken werd door de interrupt.

Met een interrupt kan het normale programma even onderbroken worden om een interrupt routine uit te voeren. Deze routine mag de registers van de processor natuurlijk niet veranderen, anders zou het normale programma niet meer werken. Daarom zet de processor na het herkennen van een interrupt eerst alle registers op de stack, voordat de interrupt routine geactiveerd wordt. Bij terugkeer uit de interrupt routine naar het gewone programma, haalt de processor alle registers weer van de stack af, en kan dan doorgaan op de plaats waar hij gebleven was. Omdat alle registers dezelfde inhoud houden, merkt het gewone programma niets van de onderbreking. Een interrupt routine kost natuurlijk wel tijd, zodat het programma trager wordt naarmate er meer onderbrekingen zijn en de interrupt routines langer zijn.


Volgende ]

© 2005...2008 Elomax [Voorwaarden ]