Interrupt versus uitzondering
Op elke computer, tijdens de normale uitvoering van een programma, kunnen zich gebeurtenissen voordoen waardoor de CPU tijdelijk kan stoppen. Gebeurtenissen zoals deze worden interrupts genoemd. Onderbrekingen kunnen worden veroorzaakt door software- of hardwarefouten. Hardware-interrupts worden (eenvoudigweg) onderbroken genoemd, terwijl software-interrupts uitzonderingen worden genoemd. Als een interrupt (software of hardware) eenmaal is opgeheven, wordt de besturing overgebracht naar een speciale subroutine genaamd ISR (Interrupt Service Routine) die de omstandigheden aankan die worden veroorzaakt door de interrupt.
Wat is interruptie?
De term Interrupt is meestal gereserveerd voor hardware-interrupts. Dit zijn programmabesturingsonderbrekingen die worden veroorzaakt door externe hardwaregebeurtenissen. Hier betekent extern extern aan de CPU. Hardware-interrupts zijn meestal afkomstig van veel verschillende bronnen, zoals een timer-chip, randapparatuur (toetsenborden, muizen, enz.), I / O-poorten (serieel, parallel enz.), Schijfstations, CMOS-klok, uitbreidingskaarten (geluidskaart, video kaart, enz.). Dat betekent dat hardware interrupts bijna nooit voorkomen vanwege een gebeurtenis gerelateerd aan het uitvoeringsprogramma. Een gebeurtenis zoals een toetsaanslag op het toetsenbord door de gebruiker of een time-out van de interne timertimer kan dit soort interrupts verhogen en de CPU laten weten dat een bepaald apparaat enige aandacht nodig heeft. In een dergelijke situatie stopt de CPU met wat het ooit deed (dat wil zeggen pauzeert het huidige programma), biedt het de dienst die vereist is door het apparaat en keert terug naar het normale programma. Wanneer hardware-interrupts optreden en de CPU de ISR start, worden andere hardware-interrupts uitgeschakeld (bijvoorbeeld in 80 × 86-machines). Als u tijdens de ISR andere hardware-interrupts nodig hebt, moet u dat expliciet doen door de interrupt-vlag te wissen (met sti-instructies). In 80 × 86-machines heeft het wissen van de interrupt-vlag alleen invloed op hardware-interrupts.
Wat is uitzonderingen?
Uitzondering is een software-interrupt, die kan worden geïdentificeerd als een speciale handlerroutine. Uitzondering kan worden geïdentificeerd als een automatisch optredende val (een Trap kan worden geïdentificeerd als een overdracht van controle, die wordt geïnitieerd door de programmeur). Over het algemeen zijn er geen specifieke instructies gekoppeld aan uitzonderingen (vallen worden gegenereerd met behulp van een specifieke instructie). Er is dus een uitzondering vanwege een "uitzonderlijke" voorwaarde die optreedt tijdens de uitvoering van het programma. Bijvoorbeeld, deling door nul, uitvoering van een illegale opcode of geheugengerelateerde fout kan uitzonderingen veroorzaken. Wanneer een uitzondering wordt gemaakt, schort de CPU het programma dat het uitvoerde tijdelijk op en start de ISR. ISR zal bevatten wat te doen met de uitzondering. Het kan het probleem verhelpen of, als het niet mogelijk is, kan het het programma afbreken door een geschikte foutmelding af te drukken. Hoewel een specifieke instructie geen uitzondering veroorzaakt, wordt een uitzondering altijd veroorzaakt door een instructie. De verdeling door een nulfout kan bijvoorbeeld alleen optreden tijdens de uitvoering van de deelinstructie.
Wat is het verschil tussen Interrupt en Uitzondering?
Onderbrekingen zijn hardware-interrupts, uitzonderingen zijn software-interrupts. Gebeurtenissen van hardware-interrupts schakelen meestal andere hardware-interrupts uit, maar dit geldt niet voor uitzonderingen. Als u hardware-interrupts moet weigeren totdat een uitzondering wordt weergegeven, moet u de onderbrekingsvlag expliciet wissen. En meestal beïnvloedt de interrupt-vlag op de computer (hardware) interrupts in tegenstelling tot uitzonderingen. Dit betekent dat het opheffen van deze vlag uitzonderingen niet zal voorkomen.