Doporučená, 2024

Redakce Choice

Rozdíl mezi přerušení a dotazování v OS

Máme mnoho externích zařízení připojených k CPU, jako je myš, klávesnice, skener, tiskárna atd. Tato zařízení také vyžadují pozornost procesoru. Předpokládejme, že CPU je zaneprázdněno zobrazením PDF a kliknete na ikonu přehrávače médií na ploše. I když CPU nemá žádnou představu, kdy by k takové události došlo, ale musí na takové vstupy reagovat z I / O zařízení. Přerušení a výzva jsou dva způsoby, jak zvládnout události generované zařízeními, ke kterým může dojít kdykoliv, zatímco CPU je zaneprázdněno prováděním jiného procesu.

Polling a Interrupt umožňují CPU zastavit to, co právě dělá, a reagovat na důležitější úkol. Polling a přerušení se od sebe liší v mnoha aspektech. Ale základním bodem, který rozlišuje Polling a Interrupt je, že v pollingovém procesoru CPU stále kontroluje I / O zařízení v pravidelném intervalu, zda potřebuje CPU službu, zatímco v přerušení I / O zařízení přeruší CPU a řekne CPU, že potřebuje CPU službu . Ve srovnávací tabulce níže jsem se zabýval některými rozdíly mezi přerušením a dotazováním.

Srovnávací graf

Základ pro porovnáníPřerušitHlasování
ZákladníZařízení upozorní CPU, že potřebuje pozornost CPU.CPU neustále kontroluje stav zařízení, zda potřebuje pozornost procesoru.
MechanismusPřerušení je hardwarový mechanismus.Volání je protokol.
ServisPopisovač přerušení služby Zařízení.CPU služby zařízení.
IndikaceŘádek přerušení ukazuje, že zařízení potřebuje servis.Bit připravený k použití indikuje, že zařízení potřebuje servis.
procesorCPU je narušeno pouze tehdy, když zařízení potřebuje servis, což šetří cykly CPU.CPU musí počkat a zkontrolovat, zda zařízení potřebuje servis, který plýtvá spoustou cyklů CPU.
VýskytPřerušení může nastat kdykoliv.Procesor dotazuje zařízení v pravidelných intervalech.
ÚčinnostPřerušení se stává neúčinným, když zařízení opakovaně přerušují CPU.
Polling se stává neefektivní, když CPU zřídka najde zařízení připravené k provozu.
PříkladNechte zvonek vyzvánět a otevřete dveře, abyste zjistili, kdo přišel.Neustále pokračujte v otevírání dveří, abyste zjistili, zda někdo přišel.

Definice přerušení

Přerušení je hardwarový mechanismus, který umožňuje CPU zjistit, že zařízení potřebuje jeho pozornost. CPU má linku požadavku na přerušení drátu, která je kontrolována CPU po provedení každé jednotlivé instrukce. Když CPU rozpozná signál přerušení na řádku požadavku přerušení, CPU zastaví svou aktuálně vykonanou úlohu a odpoví na přerušení odeslané I / O zařízením předáním ovládacího prvku přerušení obsluhy . Popisovač přerušení řeší přerušení obsluhou zařízení.

I když CPU není vědomo, že by došlo k přerušení, jak by mohlo nastat kdykoliv, ale musí reagovat na přerušení, kdykoliv nastane.

Když obslužná rutina přerušení ukončí provádění přerušení, CPU pokračuje v provádění úlohy, kterou zastavila, aby reagovala na přerušení. Přerušení může také generovat software, hardware, uživatel, nějaká chyba v programu atd. Přerušení zpracování procesoru vede k multitaskingu, tj. Uživatel může provádět řadu různých úkolů současně.

Pokud více než jeden přerušení jsou odeslány CPU, obslužný program přerušení pomáhá při řízení přerušení, které čekají na zpracování. Jak se obsluha přerušení dostane spuštěním přerušení, upřednostňuje přerušení, která čekají na zpracování procesorem, a uspořádá je do fronty, aby se mohla obsluhovat.

Definice hlasování

Jak jsme viděli v přerušeních, vstup z I / O zařízení může dorazit kdykoliv a požádat CPU, aby ho zpracoval. Polling je protokol, který oznamuje CPU, že zařízení potřebuje jeho pozornost. Na rozdíl od přerušení, kdy zařízení řekne CPU, že potřebuje zpracování CPU, v pollingovém procesoru se dotazuje I / O zařízení, zda potřebuje zpracování CPU.

CPU neustále testuje každé zařízení připojené k němu, aby zjistilo, zda nějaké zařízení potřebuje pozornost procesoru. Každé zařízení má bit připravený na příkaz, který indikuje stav tohoto zařízení, tj. Zda má nějaký příkaz, který má CPU provést nebo ne. Pokud je bit příkazu nastaven na 1, pak má nějaký příkaz, který má být proveden, pokud je bit 0, pak nemá žádné příkazy. CPUobsazovací bit, který označuje stav CPU, zda je zaneprázdněn nebo ne. Pokud je obsazovací bit nastaven na 1, pak je zaneprázdněn při provádění příkazu některého zařízení, jinak je 0 .

Algoritmus pro dotazování

  • Když má zařízení nějaký příkaz, který má být prováděn CPU, nepřetržitě kontroluje obsazovací bit CPU, dokud se neobjeví (0).
  • Když se obsazovací bit vyjasní, zařízení nastaví zápisový bit do svého příkazového registru a zapíše bajt do datového registru.
  • Zařízení nyní nastaví (1) bit připravený na příkaz.
  • Když CPU zkontroluje bit připravený příkazem a zjistí, že je nastaven (1), nastaví (1) svůj obsazovací bit.
  • CPU pak přečte příkazový registr zařízení a provede příkaz zařízení.
  • Po provedení příkazu CPU vynuluje (0) bit připravený k příkazu, chybový bit zařízení, aby indikoval úspěšné provedení příkazu zařízení, a dále vynuluje (0) svůj zaneprázdněný bit také pro označení, že procesor je volný ke spuštění příkaz jiného zařízení.

Klíčové rozdíly mezi přerušení a dotazování v OS

  1. V přerušení zařízení upozorní CPU, které potřebuje na servis, zatímco v CPU dotazování opakovaně kontroluje, zda zařízení potřebuje servis.
  2. Přerušení je hardwarový mechanismus, protože CPU má řádek požadavku na přerušení, který signalizuje, že došlo k přerušení. Na druhou stranu, Polling je protokol, který udržuje kontrolu bity kontroly oznámit, zda má zařízení něco vykonat.
  3. Popisovač přerušení zpracovává přerušení generovaná zařízeními. Na druhé straně, v dotazování, CPU služby zařízení, když vyžadují.
  4. Přerušení jsou signalizována řádkem požadavku přerušení . Bit Command-ready však indikuje, že zařízení potřebuje servis.
  5. V přerušeních, CPU je jen rušeno když nějaké zařízení přeruší to. Na druhé straně, v dotazování, CPU ztrácí mnoho cyklů CPU tím, že opakovaně kontroluje bit připravený na příkaz každého zařízení.
  6. Přerušení může nastat v každém okamžiku času, zatímco CPU udržuje dotazování zařízení v pravidelných intervalech .
  7. Dotazování se stává neefektivní, když CPU pokračuje v dotazování zařízení a zřídka najde jakékoli zařízení připravené k servisu. Na druhé straně se přerušení stanou neúčinnými, když zařízení opakovaně přerušují zpracování CPU.

Závěr:

Polling i Interrupts jsou účinné při navazování I / O zařízení. Mohou se však stát neefektivními za určitých podmínek, jak je popsáno výše.

Top