Anbefalt, 2024

Redaksjonens

Forskjellen mellom avbrudd og polling i operativsystemet

Vi har mange eksterne enheter koblet til CPUen som en mus, tastatur, skanner, skriver, etc. Disse enhetene trenger også CPU-oppmerksomhet. Anta at en CPU er opptatt med å vise en PDF, og du klikker på vinduet mediaspillerikonet på skrivebordet. Selv om CPUen ikke har noen ide når et slikt tilfelle ville oppstå, men det må svare på slike innganger fra I / O-enhetene. Avbryt og polling er de to måtene å håndtere hendelsene generert av enhetene som kan skje når som helst mens CPU er opptatt i å utføre en annen prosess.

Polling og Interrupt la CPU stoppe hva det gjør for øyeblikket og svare på den viktigere oppgaven. Polling og Interrupt er forskjellige fra hverandre i mange aspekter. Men det grunnleggende punktet som skiller polling og interrupt er at i polling- prosessoren fortsetter å kontrollere I / O-enheter med jevne mellomrom om den trenger CPU-tjeneste, mens i / av-enheten avbryter CPUen og forteller CPU at den trenger CPU-tjeneste . Jeg har diskutert noen forskjeller mellom Avbryt og polling i sammenligningstabellen nedenfor, ta en titt.

Sammenligningstabel

Grunnlag for sammenligningAvbrytePolling
grunn~~POS=TRUNCEnheten melder CPU at den trenger CPU-oppmerksomhet.CPU kontrollerer kontinuerlig enhetsstatus om den trenger CPUs oppmerksomhet.
MekanismeEn avbrudd er en maskinvaremekanisme.Polling er en protokoll.
vedlikeholdAvbryt handler-tjenester enheten.CPU-tjenester enheten.
IndikasjonAvbryt-forespørselslinje indikerer at enheten trenger service.Comand-ready bit indikerer at enheten trenger service.
prosessorCPU er forstyrret bare når en enhet trenger service, noe som sparer CPU-sykluser.CPU må vente og sjekke om en enhet trenger service som kaster bort mye CPU-sykluser.
HendelseEn avbrudd kan oppstå når som helst.CPU avstemmer enhetene med jevne mellomrom.
EffektivitetAvbrudd blir ineffektiv når enheter fortsetter å avbryte CPU gjentatte ganger.
Polling blir ineffektiv når CPU sjelden finner en enhet klar for service.
EksempelLa bellringen åpne døren for å sjekke hvem som er kommet.Fortsett å åpne døren for å sjekke om noen er kommet.

Definisjon av Avbryt

En avbrudd er en maskinvaremekanisme som gjør det mulig for CPU å oppdage at en enhet trenger sin oppmerksomhet. CPUen har en ledningsavbryt -forespørselslinje som kontrolleres av CPU etter utførelse av hver enkelt instruksjon. Når CPU registrerer et avbruddssignal på avbryt-forespørselslinjen, stopper CPU sin nåværende utførelsesoppgave og svarer på avbrudd sendt av I / O-enheten ved å sende kontrollen til å avbryte handleren . Avbruddshandleren løser avbrudd ved å betjene enheten.

Selv om CPU ikke er klar når en avbrudd vil oppstå som det kan oppstå når som helst, men det må svare på avbruddet når det oppstår.

Når avbruddshåndteringen fullfører utførelsen av avbrudd, gjenoppretter CPU utførelsen av oppgaven som den har stoppet for å svare på avbrudd. Programvare, maskinvare, bruker, noe feil i programmet, etc. kan også generere en avbrudd. Forstyrrelser som håndterer arten av CPU fører til multitasking, det vil si at en bruker kan utføre en rekke forskjellige oppgaver på samme tid.

Hvis mer enn ett avbrudd sendes til CPU, hjelper avbrudshandleren med å håndtere avbruddene som venter på å bli behandlet. Som avbruddshåndterer blir utløst av mottak av en avbrudd, prioriterer den avbruddene som venter på å bli behandlet av CPU og ordner dem i kø for å bli betjent.

Definisjon av polling

Som vi har sett i avbrudd, kan inngangen fra I / O-enheten komme til et hvilket som helst øyeblikk som ber CPUen om å behandle den. Polling er en protokoll som informerer CPU om at en enhet trenger sin oppmerksomhet. I motsetning til avbrudd, der enheten forteller CPU at den trenger CPU-prosessering, fortsetter det i polling-prosessoren å spørre I / O-enheten om den trenger CPU-behandling.

CPUen tester kontinuerlig hver enkelt enhet som er koblet til den for å oppdage om en hvilken som helst enhet trenger CPU-oppmerksomhet. Hver enhet har en kommandoklare bit som indikerer statusen til den enheten, dvs. om den har noen kommando som skal utføres av CPU eller ikke. Hvis kommandobit er satt 1, så har det noen kommando som skal utføres ellers hvis biten er 0, så har den ingen kommandoer. CPU har en opptatt bit som indikerer statusen til CPUen om den er opptatt eller ikke. Hvis opptatt bit er satt 1, er det opptatt å utføre kommandoen til en enhet, ellers er det 0 .

Algoritme for polling

  • Når en enhet har noen kommando som skal utføres av CPU, kontrollerer den kontinuerlig opptatt bit av CPU til den blir klar (0).
  • Når den travle biten blir klar, setter enheten inn skrivebit i sitt kommandoregister og skriver en byte i data-out-registeret.
  • Nå setter enheten inn (1) kommandoklarbiten.
  • Når CPU kontrollerer enhetens kommandoklare bit og finner den satt (1), setter den (1) sin opptatte bit.
  • CPU leser deretter kommandolinjen til enheten og utfører kommandoen til enheten.
  • Etter at kommandoen er utført, fjerner CPU (0) den kommandoklare biten, feilbiten til enheten for å indikere vellykket utførelse av kommandoen til enheten, og videre fjerner den (0) dens opptatte bit også for å indikere at CPUen er fri til å utføre kommandoen til en annen enhet.

Viktige forskjeller mellom avbrudd og polling i operativsystemet

  1. Ved avbrudd informerer enheten CPUen om at den trenger service, mens i polling CPU kontrollerer gjentatte ganger om en enhet trenger service.
  2. Avbryt er en maskinvaremekanisme som CPU har en ledning, avbryt-forespørselslinje som signaliserer at avbrudd har skjedd. På den andre siden er polling en protokoll som fortsetter å kontrollere kontrollbitene for å varsle om en enhet har noe å utføre.
  3. Avbruddshåndterer håndterer avbruddene som genereres av enhetene. På de andre hendene, i polling, CPU tjenester enheten når de trenger.
  4. Avbrudd er signalisert av avbryt-forespørselslinjen . Kommandoklare bit indikerer imidlertid at enheten trenger service.
  5. Ved avbrudd blir CPU bare forstyrret når en enhet forstyrrer den. På den annen side, ved polling, kaster CPU mange CPU-sykluser ved å gjenta kontrollen av den kommandoklare biten av hver enhet.
  6. En avbrudd kan forekomme når som helst, mens CPU fortsetter å pollere enheten med jevne mellomrom .
  7. Polling blir ineffektiv når CPU fortsetter å polling enheten og sjelden finner en hvilken som helst enhet klar for service. På den andre siden blir avbrudd ineffektivt når enhetene fortsetter å forstyrre CPU-prosesseringen gjentatte ganger.

Konklusjon:

Både polling og interrupts er effektive når det gjelder å delta i I / O-enhetene. Men de kan bli ineffektive i en viss tilstand som diskutert ovenfor.

Top