Interrupt

Een interrupt is wanneer een microprocessor iets doet wat hem niet is opgedragen omdat er dingen gebeuren buiten wat het programma geacht wordt te doen. Interrupts komen meestal voor omdat de processor een signaal krijgt van hardware, maar ze kunnen ook komen van software die samen met het programma draait. Onder andere het indrukken van toetsen op een toetsenbord, het afgaan van de ingebouwde timer, een gegevensoverdracht, of elke andere gebeurtenis die een onmiddellijke actie van de processor vereist, kunnen interrupts veroorzaken. Interrupts kunnen op elk moment optreden terwijl de processor een programma uitvoert, ongeacht waar in de broncode van het programma het zich bevindt.

Deze grafiek laat zien wat er gebeurt als een interrupt wordt aangeroepenZoom
Deze grafiek laat zien wat er gebeurt als een interrupt wordt aangeroepen

Hoe onderbrekingen werken

Een hardware- of software-aanroep voor een interrupt (bekend als een interrupt request, of IRQ) wordt afgehandeld door een "interrupt handler" of "interrupt service routine" (ISR) in de processor. Deze zet wat hij op dat moment aan het doen is op een stack en volgt dan bepaalde instructies die namens het systeem een bepaalde taak uitvoert, die geen deel hoeft uit te maken van het programma dat hij uitvoert. Zodra de ISR klaar is met het volgen van de instructies, neemt hij terug wat hij op de stack heeft gezet en gaat verder met wat hij aan het doen was voordat de interrupt plaatsvond.

Veel interrupt controllers van hedendaagse processoren gebruiken een interrupt vector om interrupts te sorteren op basis van waar ze vandaan komen, naast andere manieren. De vector bevat typisch de code die moet uitgevoerd worden wanneer de interrupt optreedt. ISR's zijn over het algemeen verantwoordelijk voor het afhandelen, of "servicing", van de interrupt, samen met het in orde houden van zichzelf.

Gebruik van interrupts

  • Taken triggeren op regelmatige tijdstippen
  • Onderhoud van een extern apparaat dat op elk moment kan gebeuren
  • Verwijder de noodzaak van synchrone polling
  • Het in werking stellen van een besturingssysteem (OS) om actie te ondernemen

Vragen en antwoorden

V: Wat is een onderbreking?


A: Een interrupt is een actie die door een microprocessor ondernomen wordt en die geen deel uitmaakt van het programma dat uitgevoerd wordt als gevolg van externe gebeurtenissen.

V: Waardoor komen interrupts het vaakst voor op een processor?


A: Interrupts treden het vaakst op in een processor als gevolg van het ontvangen van signalen van hardware.

V: Kunnen interrupts door software veroorzaakt worden?


A: Ja, interrupts kunnen ook veroorzaakt worden door software die parallel loopt aan het programma dat uitgevoerd wordt.

V: Noem enkele voorbeelden van gebeurtenissen die een interrupt kunnen veroorzaken.
A: Voorbeelden van gebeurtenissen die een interrupt kunnen veroorzaken zijn het indrukken van toetsen op een toetsenbord, een timer die afgaat en gegevensoverdracht die plaatsvindt.

V: Is een interrupt afhankelijk van waar het programma wordt uitgevoerd?


A: Nee, interrupts kunnen op elk moment tijdens de uitvoering van een programma optreden, ongeacht waar het programma zich in de broncode bevindt.

V: Is een interrupt een wenselijke gebeurtenis voor een microprocessor?


A: Interrupts zijn meestal ongewenste gebeurtenissen voor een microprocessor omdat ze de uitvoering van het programma onderbreken en onmiddellijke aandacht vereisen.

V: Hoe reageert een microprocessor op een interrupt?


A: Een microprocessor onderbreekt tijdelijk het programma dat wordt uitgevoerd en voert een interruptservice-routine (ISR) uit om de interrupt af te handelen voordat hij terugkeert naar het programma dat wordt uitgevoerd.

AlegsaOnline.com - 2020 / 2023 - License CC3