Verschil tussen interrupt en trap

Anonim

Onderbreken versus Trap

In elke computer kunnen tijdens de normale uitvoering van een programma gebeurtenissen optreden 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 Exceptions of Traps worden genoemd. Een uitzondering is een automatisch gegenereerde softwareonderbreking, terwijl een Trap een door software opgestuurde software is ingesteld. 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 onderbreking worden opgewekt.

Wat is een onderbreking?

De term Interrupt is meestal gereserveerd voor hardwareonderbrekingen . Ze zijn programmabeheersonderbrekingen veroorzaakt door externe hardware gebeurtenissen. 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 kaart, videokaart, enz.). Dat betekent dat hardwareonderbrekingen bijna nooit plaatsvinden als gevolg van een gebeurtenis met betrekking tot het uitvoerende programma. 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 alles wat het aan het doen was (bijv. Het huidige programma pauzeert), levert de dienst die door het apparaat nodig is en komt terug naar het normale programma. Wanneer hardwareonderbrekingen optreden en de CPU de ISR start, zijn andere hardwareonderbrekingen uitgeschakeld (bijv. In 80 × 86 machines). Als u andere hardwareonderbrekingen wilt ondervinden tijdens het uitvoeren van de ISR, moet u dit expliciet doen door de interrupt flag te verwijderen (met sti instructie). In 80 × 86 machines zal het verwijderen van de onderbrekingsvlag alleen hardwareonderbrekingen beïnvloeden.

Wat is een Trap?

Een Trap kan worden geïdentificeerd als een overdracht van controle, die door de programmeur wordt gestart. De term Trap wordt verwisselbaar gebruikt met de term Exception (dat is een automatisch voorkomende softwareonderbreking). Maar sommigen kunnen stellen dat een val gewoon een speciale subroutine-oproep is. Dus zij vallen in de categorie van software-ingeroepen onderbrekingen. Bijvoorbeeld in 80 × 86 machines kan een programmeur de int instructie gebruiken om een ​​val te starten. Omdat een val altijd onvoorwaardelijk is, wordt de controle altijd overgedragen aan de subroutine die met de val verbonden is. De exacte instructie, die de routine aanduidt om de val te verwerken, wordt gemakkelijk geïdentificeerd omdat er een expliciete instructie wordt gebruikt om een ​​val te specificeren.

Wat is het verschil tussen Interrupt en Trap?

Onderbrekingen zijn onderbrekingen van hardware, terwijl vallen zijn onderbroken door software. Voorkomen van hardwareonderbrekingen schakelt meestal andere hardwareonderbrekingen uit, maar dit geldt niet voor vallen. Als u hardwareonderbrekingen moet ontbinden tot een val wordt geserveerd, moet u de onderbrekingsvlag expliciet verwijderen. En meestal beïnvloedt de onderbrekingsvlag op de computer (hardware) onderbrekingen in tegenstelling tot vallen. Dit betekent dat het verwijderen van deze vlag geen vallen zal voorkomen. In tegenstelling tot vallen, moet de onderbreking de vorige toestand van de CPU behouden.