Verschil tussen onderbreking en uitzondering

Anonim

Onderbreken tegen uitzondering

In elke computer kan tijdens de normale uitvoering van een programma gebeurtenissen ontstaan ​​die de CPU tijdelijk kunnen stoppen. Evenementen zoals deze worden onderbroken genoemd. Onderbrekingen kunnen worden veroorzaakt door software of hardwarefouten. Hardwareonderbrekingen worden (eenvoudig) onderbroken, terwijl softwareonderbrekingen uitzonderingen worden genoemd. Zodra een onderbreking (software of hardware) is opgewekt, wordt de controle overgebracht naar een speciale subroutine genaamd ISR (Interrupt Service Routine) die de voorwaarden kan hanteer die door het onderbreken worden verhoogd.

Wat is onderbreking?

De term Interrupt is meestal gereserveerd voor hardwareonderbrekingen. Ze zijn programmaonderbrekingen door externe hardwaregebeurtenissen. Hier, extern betekent extern aan de CPU. Hardwareonderbrekingen komen meestal uit vele verschillende bronnen, zoals timerchip, randapparatuur (toetsenborden, muis, enz.), I / O-poorten (serieel, parallel, enz.), Schijfstations, CMOS-klok, uitbreidingskaarten (geluidskaart, video kaart, enz.). Dat betekent dat hardwareonderbrekingen bijna nooit optreden door een gebeurtenis in verband met het uitvoerprogramma. Bijvoorbeeld, een gebeurtenis zoals een toets op het toetsenbord door de gebruiker of een interne hardware timer uitschakeling kan dit soort storingen verhogen en kan de CPU informeren dat een bepaald apparaat wat aandacht nodig heeft. In een dergelijke situatie zal de CPU stoppen met wat het ooit doet (bijvoorbeeld het pauze van het huidige programma), de service die het apparaat nodig heeft en de normale programma terugzetten. Wanneer hardwareonderbrekingen optreden en de CPU de ISR start, zijn andere hardwareonderbrekingen uitgeschakeld (bijv. In 80 × 86 machines). Als u andere hardwareonderbrekingen nodig heeft terwijl de ISR wordt uitgevoerd, moet u dit expliciet doen door de interrupt flag (met sti instructie) te wissen. In 80 × 86 machines zal het verwijderen van de onderbrekingsvlag alleen hardwareonderbrekingen beïnvloeden.

Wat zijn uitzonderingen?

Uitzondering is een softwareonderbreking, die kan worden geïdentificeerd als een speciale handler routine. Uitzondering kan worden geïdentificeerd als een automatisch voorkomende val (een Trap kan worden geïdentificeerd als een overdracht van controle, die door de programmeur wordt gestart). In het algemeen zijn er geen specifieke instructies verbonden aan uitzonderingen (vallen worden gegenereerd met behulp van een specifieke instructie). Dus, een uitzondering optreedt door een "uitzonderlijke" conditie die optreedt tijdens de uitvoering van het programma. Bijvoorbeeld, verdeling door nul, uitvoering van een illegale opcode of geheugengerelateerde fout kan uitzonderingen veroorzaken. Wanneer een uitzondering wordt opgewekt, stopt de CPU het programma dat het uitvoerde en start de ISR tijdelijk. ISR zal bevatten wat te doen met de uitzondering. Het kan het probleem corrigeren of als het niet mogelijk is, kan het programma graciaal afbreken door een geschikt foutbericht af te drukken.Hoewel een specifieke instructie geen uitzondering veroorzaakt, wordt altijd een uitzondering veroorzaakt door een instructie. Bijvoorbeeld, de deling door nulfout kan alleen plaatsvinden tijdens de uitvoering van de divisie-instructie.

Wat is het verschil tussen onderbreking en uitzondering?

Onderbrekingen zijn onderbrekingen van hardware, terwijl uitzonderingen softwareonderbrekingen zijn. Voorkomen van hardwareonderbrekingen schakelt meestal andere hardwareonderbrekingen uit, maar dit geldt niet voor uitzonderingen. Als u hardwareonderbrekingen moet ontbinden tot een uitzondering wordt geserveerd, moet u de onderbrekingsvlag expliciet verwijderen. En meestal beïnvloedt de interrupt vlag op de computer (hardware) onderbrekingen in tegenstelling tot uitzonderingen. Dit betekent dat het verwijderen van deze vlag geen uitzonderingen zal voorkomen.