Polling și Interrupt le permite procesorului să oprească ceea ce face în prezent și să răspundă la sarcina mai importantă. Interogarea și întreruperea sunt diferite în multe privințe. Dar punctul de bază care distinge polling-ul și întreruperea este că, în procesare, CPU-ul continuă să verifice dispozitivele I / O la intervale regulate dacă are nevoie de CPU, în timp ce în întrerupere dispozitivul I / O întrerupe CPU-ul și spune CPU-ului că are nevoie de CPU . Am discutat câteva diferențe între întrerupere și votare în tabelul de comparație de mai jos, vă rugăm să aruncați o privire.
Diagramă de comparație
Bazele comparației | Întrerupe | Interogare |
---|---|---|
De bază | Dispozitivul notifică CPU că are nevoie de atenție CPU. | CPU verifică în mod constant starea dispozitivului dacă are nevoie de atenția procesorului. |
Mecanism | O întrerupere este un mecanism hardware. | Semnarea este un protocol. |
Deservirea | Operatorul de întrerupere a serviciului. | CPU-ul furnizează dispozitivul. |
Indicaţie | Linia întrerupere-cerere indică faptul că dispozitivul are nevoie de service. | Bit-ul pregătit pentru comandă indică necesitatea de întreținere a dispozitivului. |
Procesor | CPU este deranjat numai atunci când un dispozitiv are nevoie de service, ceea ce economisește ciclurile procesorului. | CPU-ul trebuie să aștepte și să verifice dacă un dispozitiv are nevoie de reparații, ceea ce duce la pierderea multor cicluri de CPU. |
Apariţie | O întrerupere poate apărea oricând. | CPU efectuează sondaje la intervale regulate. |
Eficienţă | Întreruperea devine ineficientă atunci când dispozitivele continuă să întrerupă procesorul în mod repetat. | Sondajul devine ineficient când CPU găsește rareori un dispozitiv gata pentru service. |
Exemplu | Lasă clopotul să deschidă ușa pentru a verifica cine a venit. | Continuă să deschizi ușa pentru a verifica dacă a venit cineva. |
Definiția Interrupt
O întrerupere este un mecanism hardware care permite procesorului să detecteze că un dispozitiv are nevoie de atenția lui. CPU are o linie de întrerupere a firului care este verificată de CPU după executarea fiecărei instrucțiuni. Când CPU detectează un semnal de întrerupere pe linia de întrerupere-cerere, CPU-ul oprește sarcina curentă de execuție și răspunde la modulul de întrerupere a trimiterii prin dispozitivul I / O prin trecerea controlerului la dispozitivul de întrerupere . Operatorul de întrerupere rezolvă întreruperea prin întreținerea dispozitivului.
Deși CPU nu este conștient când se va produce o întrerupere, așa cum se poate întâmpla în orice moment, dar trebuie să răspundă la întrerupe ori de câte ori apare.
Când procesorul de întrerupere termină executarea întreruperii, CPU-ul reia executarea sarcinii pe care a întrerupt-o pentru a răspunde la întrerupere. Software-ul, hardware-ul, utilizatorul, unele erori în program etc. pot genera de asemenea o întrerupere. Întreruperea manipulării naturii procesorului duce la multitasking, adică un utilizator poate efectua o serie de sarcini diferite în același timp.
Dacă mai multe întreruperi sunt trimise către CPU, procesorul de întrerupere ajută la gestionarea întreruperilor care așteaptă să fie procesate. Întrucât procesorul de întrerupere este declanșat de recepția unei întreruperi, acesta acordă prioritate întreruperilor care așteaptă să fie prelucrate de CPU și le aranjează într-o coadă pentru a fi întreținute.
Definiția Polling
Așa cum am văzut în întreruperi, intrarea de la dispozitivul I / O poate ajunge în orice moment solicitând procesorului să o proceseze. Interogarea este un protocol care notifică CPU-ului că un dispozitiv are nevoie de atenția lui. Spre deosebire de întreruperi, în cazul în care dispozitivul spune CPU-ului că are nevoie de procesare CPU, în procesare, procesorul continuă să ceară dispozitivului I / O dacă are nevoie de procesare CPU.
Procesorul continuu testează fiecare dispozitiv atașat la acesta pentru a detecta dacă vreun dispozitiv are nevoie de atenție CPU. Fiecare dispozitiv are un bit gata de comandă care indică starea acelui dispozitiv, adică dacă are o comandă care trebuie executată de CPU sau nu. Dacă bitul de comandă este setat 1, atunci are o comandă care trebuie executată altfel dacă bitul este 0, atunci nu are comenzi. CPU are un bit ocupat care indică starea procesorului, indiferent dacă este ocupat sau nu. Dacă bitul ocupat este setat 1, atunci este ocupat în executarea comenzii unui dispozitiv, altfel este 0 .
Algoritmul de interogare
- Când un dispozitiv are o comandă care trebuie executată de către procesor, acesta verifică continuu bitul ocupat al procesorului până când devine clar (0).
- Pe măsură ce bitul ocupat devine clar, dispozitivul stabilește un bit de scriere în registrul său de comandă și scrie un octet în registrul de date.
- Acum dispozitivul stabilește (1) bitul pregătit pentru comandă.
- Când CPU-ul verifică bitul pregătit pentru comenzi și află că este setat (1), acesta stabilește (1) bitul ocupat.
- CPU apoi citește registrul de comandă al dispozitivului și execută comanda dispozitivului.
- După executarea comenzii, CPU șterge (0) bitul de comandă pregătit, bitul de eroare al dispozitivului pentru a indica execuția cu succes a comenzii dispozitivului și mai apoi șterge (0) biți ocupați și pentru a indica faptul că CPU este liber să execute comanda unui alt dispozitiv.
Diferențele cheie între întreruperea și interogarea în sistemul de operare
- În timpul întreruperii, dispozitivul notifică CPU-ului că are nevoie de reparații, în timp ce în procesare, CPU verifică în mod repetat dacă un dispozitiv are nevoie de service.
- Întreruperea este un mecanism hardware , deoarece CPU are o linie de sârmă, întrerupere-cerere care semnalează că întreruperea a avut loc. Pe celelalte mâini, Polling este un protocol care continuă să verifice biții de control pentru a anunța dacă un dispozitiv are ceva de executat.
- Întrerupătorul de întrerupere gestionează întreruperile generate de dispozitive. Pe celelalte mâini, în procesul de interogare, CPU-ul furnizează dispozitivul atunci când este necesar.
- Întreruperile sunt semnalizate de linia de întrerupere-cerere . Cu toate acestea, bitul de comandă indică faptul că dispozitivul are nevoie de service.
- În întreruperi, procesorul este deranjat numai atunci când orice dispozitiv îl întrerupe. Pe de altă parte, în procesele de votare, procesorul pierde o mulțime de cicluri ale procesorului, verificând în mod repetat bitul de comandă pregătit pentru fiecare dispozitiv.
- O întrerupere poate apărea în orice moment de timp, în timp ce CPU-ul continuă să asculte aparatul la intervale regulate .
- Sondajul devine ineficient atunci când CPU continuă să efectueze sondarea dispozitivului și rareori găsește orice dispozitiv gata pentru service. Pe celelalte mâini, întreruperile devin ineficiente când dispozitivele continuă să întrerupă procesul de procesare în mod repetat.
Concluzie:
Atât interogările de interogare cât și întreruperile sunt eficiente în utilizarea dispozitivelor I / O. Dar ele pot deveni ineficiente la o anumită condiție, după cum sa discutat mai sus.