Interrupt
Een interrupt is een signaal dat naar de processor wordt gestuurd en het huidige proces onderbreekt. Deze kan worden gegenereerd door een hardwareapparaat of een softwareprogramma.
Een hardware-interrupt wordt vaak veroorzaakt door een invoerapparaat, zoals een muis of toetsenbord. Als je bijvoorbeeld een tekstverwerker gebruikt en een toets indrukt, moet het programma de invoer onmiddellijk verwerken. Het typen van "hello" veroorzaakt vijf interruptverzoeken, waardoor het programma de letters die je hebt getypt kan weergeven. Op dezelfde manier stuur je telkens wanneer je op een muisknop klikt of op een aanraakscherm tikt, een interrupts signaal naar het apparaat.
Software-interrupts worden gebruikt om fouten en uitzonderingen af te handelen die optreden terwijl een programma actief is. Als een programma bijvoorbeeld verwacht dat een variabele een geldig getal is, maar de waarde null is, kan er een interrupt worden gegenereerd om te voorkomen dat het programma crasht. Hierdoor kan het programma van koers veranderen en de fout afhandelen voordat het verdergaat. Op dezelfde manier kan een interrupt worden gebruikt om een oneindige lus te onderbreken, die een geheugenlek kan veroorzaken of ervoor kan zorgen dat een programma niet meer reageert.
Zowel hardware- als software-interrupts worden verwerkt door een interrupt-handler, ook wel een interruptserviceroutine of ISR genoemd. Wanneer een programma een interruptverzoek ontvangt, handelt de ISR de gebeurtenis af en gaat het programma verder. Omdat interrupts vaak niet langer duren dan een toetsaanslag of muisklik, worden ze vaak in minder dan een milliseconde verwerkt.
Test je kennis