Rekommenderas, 2019

Redaktionen

Skillnad mellan avbrott och polling i OS

Vi har många externa enheter kopplade till CPU-enheten som en mus, tangentbord, skanner, skrivare etc. Dessa enheter behöver också CPU-uppmärksamhet. Antag att en CPU är upptagen med att visa en PDF-fil och du klickar på mediaspelarens ikon på skrivbordet. Även om CPU inte har någon aning när en händelse som denna skulle inträffa, men den måste svara på sådana ingångar från I / O-enheterna. Avbryt och polling är de två sätten att hantera händelser som genereras av enheter som kan hända när som helst medan CPU är upptagen vid utförandet av en annan process.

Polling and Interrupt gör att CPU stoppar vad det för närvarande gör och svarar på den viktigare uppgiften. Polling och Interrupt skiljer sig från varandra i många aspekter. Men den grundläggande punkten som skiljer polling och avbrott är att i polling- processorn fortsätter kontrollen av I / O-enheter med jämna mellanrum om det behöver CPU-tjänsten medan I / O-enheten avbryter CPU-enheten och berättar för CPU att den behöver CPU-tjänst . Jag har diskuterat några skillnader mellan avbrott och polling i jämförelse diagrammet nedan, snälla ta en titt.

Jämförelsediagram

Grunder för jämförelseAvbrytaPolling
GrundläggandeEnheten meddelar CPU att den behöver CPU-uppmärksamhet.CPU kontrollerar ständigt enhetsstatus om den behöver CPU: s uppmärksamhet.
MekanismEtt avbrott är en maskinvaru mekanism.Polling är ett protokoll.
UnderhållAvbryt hanteringstjänster enheten.CPU-tjänster enheten.
IndikationAvbryt-begäran linje indikerar att enheten behöver service.Comand-klar bit indikerar att enheten behöver service.
CPUCPU störs endast när en enhet behöver service, vilket sparar CPU-cykler.CPU måste vänta och kontrollera om en enhet behöver service som slänger mycket CPU-cykler.
FörekomstEtt avbrott kan inträffa när som helst.CPU pollar enheterna med jämna mellanrum.
EffektivitetAvbrott blir ineffektivt när enheter fortsätter att avbryta CPU-upprepade gånger.
Polling blir ineffektiv när CPU sällan hittar en enhet redo för service.
ExempelLåt klockringen öppna dörren för att kontrollera vem som har kommit.Ständigt fortsätt att öppna dörren för att kontrollera om någon har kommit.

Definition av Avbryt

Ett avbrott är en maskinvaru mekanism som gör det möjligt för CPU att upptäcka att en enhet behöver sin uppmärksamhet. CPU: n har en ledningsavbrott -begäran linje som kontrolleras av CPU efter utförandet av varje enskild instruktion. När CPU avkänner en avbrottssignal på avbrottsförfrågningslinjen, stannar CPU sin nuvarande exekverande uppgift och svarar på avbrottet sänds av I / O-enheten genom att överföra kontrollen för att avbryta hanteraren . Avbrottshanteraren löser avbrottet genom att service enheten.

Även om CPU inte är medveten om när ett avbrott skulle inträffa som det kan inträffa när som helst, men det måste svara på avbrottet närhelst det inträffar.

När avbrottshanteraren avslutar utförandet av avbrottet, återupptar CPU utförandet av den uppgift som den har slutat för att svara på avbrottet. Programvara, hårdvara, användare, något fel i programmet etc. kan också skapa ett avbrott. Avbrott som hanterar typ av CPU leder till multitasking, dvs en användare kan utföra ett antal olika uppgifter samtidigt.

Om mer än ett avbrott skickas till CPU: n, hjälper avbrottshanteraren att hantera de avbrott som väntar på att bearbetas. Eftersom avbrottshanteraren utlöses av mottagandet av ett avbrott prioriterar det avbrott som väntar på att behandlas av CPU-enheten och ordnar dem i en kö för att bli servad.

Definition av polling

Som vi har sett i avbrott kan ingången från I / O-enheten komma när som helst som begär att CPUen ska bearbeta den. Polling är ett protokoll som meddelar CPU att en enhet behöver sin uppmärksamhet. Till skillnad från att avbryta, där enheten berättar CPU att den behöver CPU-bearbetning, håller det i polling-CPU-enheten fråga om I / O-enheten om den behöver CPU-bearbetning.

CPUen testar kontinuerligt varje enhet som är ansluten till den för att upptäcka om någon enhet behöver CPU-uppmärksamhet. Varje enhet har en kommandofärdig bit som anger status för den enheten, dvs om det har något kommando som ska utföras av CPU eller inte. Om kommandobit är inställt 1, har det något kommando som ska utföras annars om biten är 0, så har den inga kommandon. CPU har en upptagen bit som anger CPU-status om den är upptagen eller inte. Om den upptagna biten är inställd 1, är det upptagen med att exekvera kommandot för en viss enhet, annars är det 0 .

Algoritm för polling

  • När en enhet har något kommando som ska utföras av CPU kontrollerar den kontinuerligt upptaget av CPU tills det blir klart (0).
  • När den upptagna biten blir klar anger enheten en skrivbit i sitt kommandoregister och skriver en byte i data-out-registret.
  • Nu ställer enheten upp (1) kommandotillverkningsbiten.
  • När CPU kontrollerar enhetens kommandoklare bit och finner den inställd (1), sätter den (1) sin upptagna bit.
  • CPU: n läser sedan kommandoregisteret för enheten och kör enhetens kommando.
  • Efter kommandotillförsel rensar CPU (0) kommandotillgångsbiten, felbiten hos anordningen för att indikera ett framgångsrikt utförande av anordningens anordning och vidare rensar (0) dess upptagsbit också för att indikera att CPU: n är fri att genomföra kommandot för en annan enhet.

Viktiga skillnader mellan avbrott och polling i operativsystemet

  1. Vid avbrott informerar enheten CPU: n som den behöver service, medan i polling-CPU kontrollerar upprepade gånger om en enhet behöver service.
  2. Avbryt är en maskinvaru mekanism som CPU har en tråd, avbryt-begäran linje som signalerar att avbrott har inträffat. På andra håll är polling ett protokoll som håller kontrollen av kontrollbitarna för att meddela om en enhet har något att utföra.
  3. Avbrottshanteraren hanterar de avbrott som genereras av enheterna. På andra händer, vid polling, CPU tjänster enheten när de behöver.
  4. Avbrott signaleras av avbrott-begäran linje . Kommandoklar bit indikerar dock att enheten behöver service.
  5. Vid avbrott störs endast CPU-enheten när någon enhet avbryter det. Å andra sidan, vid polling, slöser CPU massor av CPU-cykler genom att upprepade gånger kontrollera kommandokraven på varje enhet.
  6. Ett avbrott kan inträffa när som helst, medan CPU fortsätter att polla enheten med jämna mellanrum .
  7. Polling blir ineffektiv när CPU fortsätter att polla enheten och sällan hittar någon enhet redo för service. Å andra sidan blir avbrott ineffektiva när enheterna fortsätter att avbryta CPU-bearbetningen upprepade gånger.

Slutsats:

Både pollning och avbrott är effektiva när det gäller att delta i I / O-enheterna. Men de kan bli ineffektiva vid ett visst tillstånd som diskuterats ovan.

Top