
Polling en Interrupt laten CPU stoppen met wat het momenteel doet en reageren op de belangrijkere taak. Polling en Interrupt verschillen in veel opzichten van elkaar. Maar het basispunt dat Polling en Interrupt onderscheidt, is dat in polling de CPU steeds I / O-apparaten met regelmatige tussenpozen controleert of deze CPU-service nodig heeft, terwijl het I / O-apparaat in interrupt de CPU onderbreekt en aangeeft dat de CPU-service nodig is . Ik heb enkele verschillen tussen Interrupt en Polling besproken in het onderstaande vergelijkingsoverzicht, neem alsjeblieft een kijkje.
Vergelijkingstabel
Basis voor vergelijking | Onderbreken | stemming |
---|---|---|
basis- | Apparaat meldt CPU dat het CPU-aandacht nodig heeft. | CPU controleert constant de status van het apparaat, of het CPU-aandacht nodig heeft. |
Mechanisme | Een interrupt is een hardware-mechanisme. | Polling is een protocol. |
onderhoud | Interrupt handlerservices van het apparaat. | CPU-services van het apparaat. |
aanwijzing | Interrupt-aanvraag lijn geeft aan dat het apparaat onderhoud nodig heeft. | Comand-ready bit geeft aan dat het apparaat onderhoud nodig heeft. |
processor | CPU wordt alleen gestoord als een apparaat onderhoud nodig heeft, waardoor CPU-cycli worden bespaard. | CPU moet wachten en controleren of een apparaat onderhoud nodig heeft dat veel CPU-cycli verspilt. |
voorval | Een interrupt kan op elk moment optreden. | CPU peilt de apparaten met regelmatige tussenpozen. |
rendement | Onderbreken wordt inefficiënt wanneer apparaten de CPU herhaaldelijk onderbreken. | Peiling wordt inefficiënt als de CPU zelden een apparaat gereed voor service vindt. |
Voorbeeld | Laat de bel rinkelen en open dan de deur om te controleren wie er is gekomen. | Blijf de deur constant open om te controleren of er iemand is gekomen. |
Definitie van Interrupt
Een interrupt is een hardwaremechanisme waarmee de CPU kan detecteren dat een apparaat zijn aandacht nodig heeft. De CPU heeft een draadinterrupt-aanvraaglijn die wordt gecontroleerd door de CPU na uitvoering van elke afzonderlijke instructie. Wanneer de CPU een interruptsignaal detecteert op de interrupt-request-regel, stopt de CPU de momenteel uitgevoerde taak en reageert op de interrupt-verzending door het I / O-apparaat door de besturing door te sturen naar de interrupthandler . De interrupt handler lost de interrupt op door onderhoud aan het apparaat uit te voeren.
Hoewel de CPU niet op de hoogte is wanneer een interrupt optreedt, kan deze op elk moment optreden, maar moet deze op elk moment op de onderbreking reageren.
Wanneer de interrupt handler klaar is met het uitvoeren van de interrupt, hervat de CPU de uitvoering van de taak die gestopt is voor het reageren van de interrupt. Software, hardware, gebruiker, een fout in het programma, etc. kunnen ook een interrupt genereren. Onderbreekt de verwerking van aard van CPU-leads tot multitasking, dat wil zeggen dat een gebruiker verschillende taken tegelijkertijd kan uitvoeren.
Als er meer dan één interrupts worden verzonden naar de CPU, helpt de interrupt handler bij het beheer van de interrupts die wachten om te worden verwerkt. Omdat de interrupt handler wordt geactiveerd door de ontvangst van een interrupt, geeft deze prioriteit aan de interrupts die wachten om te worden verwerkt door de CPU en worden ze in een wachtrij gerangschikt om een service te krijgen.
Definitie van polling
Zoals we hebben gezien in interrupts, kan de invoer van het I / O-apparaat op elk moment arriveren en de CPU vragen het te verwerken. Polling is een protocol dat de CPU laat weten dat een apparaat zijn aandacht nodig heeft. In tegenstelling tot de interrupt, waarbij het apparaat de CPU vertelt dat het CPU-verwerking vereist, blijft de peiling-CPU het I / O-apparaat vragen of het processorverwerking nodig heeft.
De CPU test continu elk aangesloten apparaat om te detecteren of een apparaat CPU-aandacht nodig heeft. Elk apparaat heeft een opdrachtklare bit die de status van dat apparaat aangeeft, dwz of het een opdracht heeft die door de CPU moet worden uitgevoerd of niet. Als het opdrachtbit is ingesteld op 1, heeft het een opdracht die anders moet worden uitgevoerd als het bit 0 is, dan heeft het geen opdrachten. CPU heeft een bezet bit dat de status van de CPU aangeeft of het bezet is of niet. Als het bezetbit is ingesteld op 1, is het bezig met het uitvoeren van de opdracht van een bepaald apparaat, anders is het 0 .
Algoritme voor polling
- Wanneer een apparaat een opdracht heeft die door de CPU moet worden uitgevoerd, controleert het continu de bezette bit van de CPU totdat deze duidelijk wordt (0).
- Naarmate de busy-bit duidelijk wordt, zet het apparaat een schrijfbit in zijn commandoregister en schrijft een byte in het data-out-register.
- Nu stelt het apparaat (1) het gereed voor commando in.
- Wanneer de CPU het gereed voor de opdracht gereedgemaakte bit controleert en vindt dat deze is ingesteld (1), wordt (1) het bezetbit ingesteld.
- De CPU leest vervolgens het opdrachtregister van het apparaat en voert de opdracht van het apparaat uit.
- Nadat de opdracht is uitgevoerd, wist de CPU (0) de opdrachtklare bit, het foutbit van het apparaat om aan te geven dat het apparaat met succes is uitgevoerd en verder wordt (0) het bezetbit gewist om aan te geven dat de CPU vrij is om uit te voeren de opdracht van een ander apparaat.
Belangrijkste verschillen tussen interruptie en polling in OS
- In interrupt waarschuwt het apparaat de CPU dat het onderhoud nodig heeft terwijl in de polling de CPU herhaaldelijk controleert of een apparaat onderhoud nodig heeft.
- Onderbreking is een hardwaremechanisme aangezien de CPU een draad, onderbrekingsverzoekregel heeft die signaleert dat interruptie heeft plaatsgevonden. Aan de andere kant is pollen een protocol dat de controlebits blijft controleren om aan te geven of een apparaat iets moet uitvoeren.
- Onderbrekingshandler verwerkt de onderbrekingen die door de apparaten worden gegenereerd. Aan de andere kant, in polling, CPU- diensten het apparaat wanneer dat nodig is.
- Onderbrekingen worden gesignaleerd door de interrupt-request-lijn . Command-ready bit geeft echter aan dat het apparaat onderhoud nodig heeft.
- In interrupts wordt de CPU alleen gestoord als een apparaat het onderbreekt. Aan de andere kant verspilt CPU veel CPU-cycli door herhaaldelijk de opdracht-klaar bit van elk apparaat te controleren.
- Een interrupt kan op elk moment optreden, terwijl de CPU het apparaat regelmatig blijft pollen.
- Peiling wordt inefficiënt als de CPU het apparaat blijft pollen en zelden een apparaat vindt dat gereed is voor onderhoud. Aan de andere kant worden interrupts inefficiënt wanneer de apparaten de CPU-verwerking herhaaldelijk onderbreken.
Conclusie:
Zowel Polling als Interrupts zijn efficiënt in het bijwonen van de I / O-apparaten. Maar ze kunnen inefficiënt worden in de bepaalde toestand zoals hierboven besproken.