Aanbevolen, 2024

Editor'S Choice

Verschil tussen onderbreken en polling in OS

We hebben veel externe apparaten aangesloten op de CPU zoals een muis, toetsenbord, scanner, printer, enz. Deze apparaten hebben ook CPU-aandacht nodig. Stel dat een CPU bezig is met het weergeven van een PDF en dat u op het pictogram van de mediaspeler op het bureaublad klikt. Hoewel de CPU geen idee heeft wanneer een dergelijke gebeurtenis zou plaatsvinden, maar op dergelijke invoer van de I / O-apparaten moet reageren. Onderbreken en pollen zijn de twee manieren om met de door de apparaten gegenereerde gebeurtenissen om te gaan die op elk moment kunnen plaatsvinden terwijl de CPU bezig is met het uitvoeren van een ander proces.

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 vergelijkingOnderbrekenstemming
basis-Apparaat meldt CPU dat het CPU-aandacht nodig heeft.CPU controleert constant de status van het apparaat, of het CPU-aandacht nodig heeft.
MechanismeEen interrupt is een hardware-mechanisme.Polling is een protocol.
onderhoudInterrupt handlerservices van het apparaat.CPU-services van het apparaat.
aanwijzingInterrupt-aanvraag lijn geeft aan dat het apparaat onderhoud nodig heeft.Comand-ready bit geeft aan dat het apparaat onderhoud nodig heeft.
processorCPU 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.
voorvalEen interrupt kan op elk moment optreden.CPU peilt de apparaten met regelmatige tussenpozen.
rendementOnderbreken wordt inefficiënt wanneer apparaten de CPU herhaaldelijk onderbreken.
Peiling wordt inefficiënt als de CPU zelden een apparaat gereed voor service vindt.
VoorbeeldLaat 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

  1. 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.
  2. 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.
  3. Onderbrekingshandler verwerkt de onderbrekingen die door de apparaten worden gegenereerd. Aan de andere kant, in polling, CPU- diensten het apparaat wanneer dat nodig is.
  4. Onderbrekingen worden gesignaleerd door de interrupt-request-lijn . Command-ready bit geeft echter aan dat het apparaat onderhoud nodig heeft.
  5. 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.
  6. Een interrupt kan op elk moment optreden, terwijl de CPU het apparaat regelmatig blijft pollen.
  7. 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.

Top