Verschil tussen systeemoproep en interrupt

Anonim

Systeemoproep versus Interrupt

Een typische processor voert één voor één instructies uit. Maar er kunnen gelegenheden zijn wanneer de processor tijdelijk moet stoppen en de huidige instructie houden en een ander programma of code segment uitvoeren (op een andere plaats). Vervolgens keert de processor terug naar de normale uitvoering en gaat verder van waar het weggelaten is. Een systeemoproep en een onderbreking zijn dergelijke gelegenheden. Een systeemoproep is een oproep naar een subroutine die in het systeem is ingebouwd. Een onderbreking is een onderbreking van de programmabeheersing door externe hardwaregebeurtenissen.

Wat is een systeemoproep?

Systeemoproepen bieden programma's die op de computer lopen, een interface om met het besturingssysteem te praten. Wanneer een programma moet vragen voor een dienst (waarvoor het zelf geen toestemming heeft) van de kernel van het besturingssysteem, gebruikt het een systeemgesprek. Gebruikersprocessen hebben niet dezelfde rechten als de processen die direct met het besturingssysteem werken. Om bijvoorbeeld te communiceren met en extern I / O-apparaat of om met andere processen te communiceren, moet een programma systeemoproepen gebruiken.

Wat is een onderbreking?

Tijdens de normale uitvoering van een computerprogramma kunnen er 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 Exceptions of Traps 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 onderbreking worden opgewekt.

Zoals hierboven vermeld, wordt de term Interrupt 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.

Wat is het verschil tussen systeemoproep en interrupt?

Systeemoproep is een oproep naar een subroutine die in het systeem is ingebouwd, terwijl Interrupt een gebeurtenis is, waardoor de processor de huidige uitvoering tijdelijk houdt. Een groot verschil is echter dat systeemoproepen synchroon zijn, terwijl onderbrekingen niet zijn. Dat betekent dat systeemoproepen op een bepaalde tijdstip plaatsvinden (meestal bepaald door de programmeur), maar onderbrekingen kunnen te allen tijde optreden als gevolg van een onverwacht gebeurtenis, zoals een toets op het toetsenbord door de gebruiker. Bijgevolg, wanneer er ooit een systeemoproep plaatsvindt, hoeft de processor alleen te onthouden waar terug te keren, maar in geval van onderbreking moet de processor zowel de plaats terugkeren als de toestand van het systeem herinneren. In tegenstelling tot een systeemoproep heeft een storing meestal niets te maken met het huidige programma.