Küsitlus ja katkestamine võimaldavad protsessoril peatada, mida ta praegu teeb, ja reageerida olulisemale ülesandele. Küsitlused ja katkestused erinevad üksteisest paljudes aspektides. Kuid põhipunkt, mis eristab küsitlemist ja katkestamist, on see, et küsitlusprotsessor jälgib regulaarselt I / O-seadmeid, kas see vajab CPU-teenust, samal ajal kui I / O-seade katkestab CPU-d ja ütleb CPU-le, et see vajab CPU-d . Olen arutlenud mõningate erinevuste vahel allpool toodud võrdluskaardi vahel katkestamise ja küsitlemise vahel, vaata palun.
Võrdluskaart
Võrdluse alus | Vahele segama | Küsitlus |
---|---|---|
Põhiline | Seade teatab CPU-le, et vajab CPU tähelepanu. | CPU kontrollib pidevalt seadme olekut, kas see vajab CPU tähelepanu. |
Mehhanism | Katkestus on riistvara mehhanism. | Küsitlus on protokoll. |
Hooldus | Katkestamise käitleja teenindab seadet. | CPU pakub seadmele teenuseid. |
Märge | Katkestus-nõudmise rida näitab, et seade vajab hooldust. | Comand-ready bit näitab, et seade vajab hooldust. |
Protsessor | CPU on häiritud ainult siis, kui seade vajab hooldust, mis säästab CPU tsükleid. | CPU peab ootama ja kontrollima, kas seade vajab hooldust, mis raiskab palju CPU tsükleid. |
Esinemine | Katkestus võib toimuda igal ajal. | CPU küsitleb seadmeid regulaarselt. |
Tõhusus | Katkestus muutub ebaefektiivseks, kui seadmed jätkavad CPU korduvat katkestamist. | Küsitlus muutub ebaefektiivseks, kui CPU leiab harva seadme, mis on valmis kasutamiseks. |
Näide | Laske kellarõngas seejärel avada uks, et kontrollida, kes on tulnud. | Pidage pidevalt kinni, et kontrollida, kas keegi on tulnud. |
Katkestuse mõiste
Katkestus on riistvaramehhanism, mis võimaldab protsessoril tuvastada, et seade vajab selle tähelepanu. CPU-l on traadi katkestamise päringu rida, mida CPU kontrollib pärast iga käsu täitmist. Kui CPU tuvastab katkestusnõude katkestussignaali, peatab CPU oma praeguse tööülesande ja reageerib katkestuse saatmisele I / O seadmega, viies juhtimise katkestama käitleja . Katkestamise hooldaja lahendab katkestuse seadme teenindamisega.
Kuigi CPU ei ole teadlik sellest, millal võib katkestus toimuda igal ajal, kuid see peab katkestama, kui see juhtub.
Kui katkestaja lõpetab katkestuse teostamise, siis jätkab CPU selle ülesande täitmist, mida ta katkestusele reageerimiseks peatas. Tarkvara, riistvara, kasutaja, mõni viga programmis jne võib samuti tekitada katkestuse. Keskprotsessori töötlemise katkestamine viib multitegumini, st kasutaja saab samaaegselt täita mitmeid erinevaid ülesandeid.
Kui CPU-le saadetakse rohkem kui üks katkestus, aitab katkestaja käsitseda töödeldavaid katkestusi. Kuna katkestuse käivitaja käivitub katkestuse vastuvõtmisega, seab see prioriteediks keskseadme töötlemist ootavad katkestused ja korraldab need järjekorda hooldamiseks.
Küsitluse mõiste
Nagu oleme katkestustes näinud, saab I / O-seadme sisend jõuda igal ajal, paludes protsessoril seda töödelda. Küsitlemine on protokoll, mis teatab CPU-le, et seade vajab selle tähelepanu. Erinevalt katkestustest, kus seade ütleb CPU-le, et see vajab protsessori töötlemist, küsib protsessor küsitlemisel I / O-seadet, kas see vajab protsessori töötlemist.
CPU testib pidevalt iga seadmega ühendatud seadet, et avastada, kas mõni seade vajab CPU tähelepanu. Igal seadmel on käsuga valmis bit, mis näitab selle seadme olekut, st kas sellel on mõni käsk, mida CPU peab täitma või mitte. Kui käsu bit on seatud 1, siis on sellel käsk, mida tuleb täita, kui bitt on 0, siis tal ei ole käske. CPU- l on hõivatud bit, mis näitab CPU olekut, kas see on hõivatud või mitte. Kui hõivatud bit on seatud 1, siis on see mõne seadme käsu täitmisel hõivatud, muidu on see 0 .
Küsitluse algoritm
- Kui seadmel on CPU poolt käivitatav käsk, kontrollib see pidevalt CPU hõivatud bitit, kuni see muutub selgeks (0).
- Kui hõivatud bit muutub selgeks, seab seade kirjutusbiti oma käsuregistrisse ja kirjutab andmevälja registrisse baiti.
- Nüüd seab seade (1) käsu valmis bit.
- Kui CPU kontrollib seadmete käskude valmisbitti ja leiab selle (1), seab see (1) selle hõivatud bitile.
- Seejärel loeb CPU seadme käsuregistri ja täidab seadme käsu.
- Pärast käsu täitmist kustutab protsessor (0) käskude valmisbiti, seadme veabitt, et näidata seadme käsu edukat täitmist, ning kustutab (0) oma hõivatud biti ka näitamaks, et protsessor on vabalt teostatav mõne teise seadme käsk.
Peamised erinevused operatsiooni katkestamise ja küsitlemise vahel
- Katkestamise korral teavitab seade CPUd, et vajab hooldust, samas kui küsitlusprotsessor kontrollib korduvalt, kas seade vajab hooldust.
- Katkestus on riistvaramehhanism , kuna CPU-l on traat, katkestus-taotluse rida, mis annab märku sellest katkestusest. Teiselt poolt on küsitlus protokoll, mis kontrollib kontrollbitte, et teatada, kas seadmel on midagi täita.
- Katkestaja käitleja tegeleb seadmete poolt tekitatud katkestustega. Teisest küljest teenindab CPU seadmest küsitlemisel seadet, kui see on vajalik.
- Katkestusi tähistab katkestus-taotlus rida . Command-ready bit näitab siiski, et seade vajab hooldust.
- Katkestustes häiritakse CPU-d ainult siis, kui mõni seade seda katkestab. Teisest küljest raiskab CPU protsessoril palju CPU-tsükleid, kontrollides korduvalt iga seadme käsureavalikut.
- Katkestus võib toimuda mis tahes ajahetkel, samas kui CPU hoiab seadet küsitluses regulaarselt .
- Küsitlus muutub ebaefektiivseks, kui protsessor hoiab seadet küsitluses ja leiab harva seadme hoolduseks valmis. Teiselt poolt muutuvad katkestused ebaefektiivseks, kui seadmed jätkavad protsessori töötlemise katkestamist korduvalt.
Järeldus:
Mõlemad küsitlused ja katkestused on tõhusad I / O-seadmete külastamisel. Kuid need võivad muutuda ebaefektiivseks eespool kirjeldatud olukorras.