Verschil tussen Interrupt en Trap

Verschil tussen Interrupt en Trap
Verschil tussen Interrupt en Trap

Video: Verschil tussen Interrupt en Trap

Video: Verschil tussen Interrupt en Trap
Video: chemische of fysische reactie ? 2024, November
Anonim

Interrupt vs Trap

Op elke computer kunnen zich tijdens de normale uitvoering van een programma gebeurtenissen voordoen die ervoor kunnen zorgen dat de CPU tijdelijk stopt. Gebeurtenissen zoals deze worden interrupts genoemd. Onderbrekingen kunnen worden veroorzaakt door software- of hardwarefouten. Hardware-interrupts worden (simpelweg) Interrupts genoemd, terwijl software-interrupts Exceptions of Traps worden genoemd. Een Exception is een automatisch gegenereerde software-interrupt, terwijl een Trap een door software aangeroepen interrupt is die door de programmeur wordt gestart. Zodra een interrupt (software of hardware) is geactiveerd, wordt de besturing overgebracht naar een speciale subroutine genaamd ISR (Interrupt Service Routine) die de voorwaarden aankan die door de interrupt worden veroorzaakt.

Wat is een onderbreking?

De term Interrupt is meestal gereserveerd voor hardware-interrupts. Het zijn onderbrekingen in de programmabesturing die worden veroorzaakt door externe hardwaregebeurtenissen. Hier betekent extern extern aan de CPU. Hardware-interrupts komen meestal van veel verschillende bronnen, zoals timer-chip, randapparatuur (toetsenborden, muis, enz.), I/O-poorten (serieel, parallel, enz.), schijfstations, CMOS-klok, uitbreidingskaarten (geluidskaart, video kaart, enz.). Dat betekent dat hardware-interrupts bijna nooit optreden als gevolg van een gebeurtenis die verband houdt met het uitvoerende programma. Een gebeurtenis zoals het indrukken van een toets op het toetsenbord door de gebruiker of een time-out van een interne hardwaretimer kan dit soort onderbreking veroorzaken en de CPU informeren dat een bepaald apparaat wat aandacht nodig heeft. In een dergelijke situatie zal de CPU stoppen met wat hij aan het doen was (d.w.z. het huidige programma pauzeren), de door het apparaat vereiste service leveren en terugkeren naar het normale programma. Wanneer hardware-interrupts optreden en de CPU de ISR start, worden andere hardware-interrupts uitgeschakeld (bijv.g. in 80×86-machines). Als u andere hardware-interrupts nodig hebt terwijl de ISR actief is, moet u dat expliciet doen door de interrupt-vlag te wissen (met sti-instructie). Op 80×86 machines heeft het wissen van de interruptvlag alleen invloed op hardware-interrupts.

Wat is een val?

A Trap kan worden geïdentificeerd als een overdracht van controle, die wordt geïnitieerd door de programmeur. De term Trap wordt door elkaar gebruikt met de term Exception (wat een automatisch optredende software-interrupt is). Maar sommigen beweren misschien dat een val gewoon een speciale subroutine-aanroep is. Ze vallen dus in de categorie van door software aangeroepen interrupts. In 80×86-machines kan een programmeur bijvoorbeeld de int-instructie gebruiken om een val te starten. Omdat een trap altijd onvoorwaardelijk is, wordt de besturing altijd overgedragen naar de subroutine die bij de trap hoort. De exacte instructie die de routine aanroept voor het afhandelen van de val is gemakkelijk te identificeren omdat een expliciete instructie wordt gebruikt om een val te specificeren.

Wat is het verschil tussen Interrupt en Trap?

Interrupts zijn hardware-interrupts, terwijl traps door software aangeroepen interrupts zijn. Het optreden van hardware-interrupts schakelt gewoonlijk andere hardware-interrupts uit, maar dit geldt niet voor traps. Als u hardware-interrupts niet wilt toestaan totdat een trap is bediend, moet u de interrupt-vlag expliciet wissen. En meestal heeft de interruptvlag op de computer invloed op (hardware)interrupts in tegenstelling tot traps. Dit betekent dat het opruimen van deze vlag geen vallen zal voorkomen. In tegenstelling tot traps, zouden interrupts de vorige staat van de CPU moeten behouden.

Aanbevolen: