A lekérdezés és a megszakítás lehetővé teszi, hogy a CPU megállítsa azt, amit jelenleg csinál, és reagáljon a fontosabb feladatra. A szavazás és a megszakítás sok szempontból különböznek egymástól. Azonban a Polling és Interrupt megkülönböztetése az, hogy a CPU rendszeresen ellenőrzi az I / O eszközöket, függetlenül attól, hogy CPU-szolgáltatásra van szüksége, míg az I / O eszköz megszakítja a CPU-t és mondja el a CPU-nak, hogy CPU-szolgáltatást igényel. . Néhány különbséget megvitattam az Interrupt és a Polling között az alábbi összehasonlító táblázatban, nézd meg.
Összehasonlító táblázat
Az összehasonlítás alapja | Megszakítás | Szavazás |
---|---|---|
Alapvető | Az eszköz értesíti a CPU-t, hogy CPU figyelmet igényel. | A CPU folyamatosan ellenőrzi az eszköz állapotát, hogy CPU figyelmet igényel-e. |
mechanizmus | A megszakítás hardveres mechanizmus. | A szavazás protokoll. |
Szerviz | A megszakításkezelő a készüléket szolgálja. | A CPU a készüléket használja. |
Jelzés | A megszakítás-kérés sor azt jelzi, hogy az eszköz karbantartást igényel. | A Comand-ready bit azt jelzi, hogy a készülék szervizelésre szorul. |
processzor | A CPU-t csak akkor lehet megzavarni, ha egy készülék szervizelésre szorul, ami a CPU-ciklusokat megmenti. | A CPU-nak meg kell várnia, és meg kell vizsgálnia, hogy egy eszköznek szüksége van-e szervizelésre, ami sok CPU-ciklust pazarol. |
Esemény | A megszakítás bármikor történhet. | A CPU rendszeres időközönként lekérdezi az eszközöket. |
Hatékonyság | A megszakítás nem hatékony, ha az eszközök folyamatosan megszakítják a CPU-t. | A lekérdezés nem hatékony, ha a CPU ritkán találja meg a szervizre kész eszközt. |
Példa | Hagyja, hogy a csengő gyűrű kinyissa az ajtót, hogy ellenőrizze, ki jött. | Folyamatosan tartsa nyitva az ajtót annak ellenőrzésére, hogy valaki jött-e. |
Megszakítás meghatározása
A megszakítás olyan hardveres mechanizmus, amely lehetővé teszi a CPU számára, hogy észlelje, hogy egy eszköznek szüksége van a figyelemre. A CPU-nak van egy vezetékes megszakítás-kérési sora, amelyet a CPU minden egyes utasítás végrehajtása után ellenőriz. Ha a CPU megszakító jelet érzékel a megszakítás-kérés sorban, a CPU leállítja az aktuálisan végrehajtó feladatot, és válaszol a megszakításküldésre az I / O eszközzel úgy, hogy a vezérlőt megszakítja a kezelő megszakításához . A megszakításkezelő a készülék karbantartásával megoldja a megszakítást.
Bár a CPU nem tudja, mikor történik megszakítás, mivel ez bármikor bekövetkezhet, de meg kell válaszolnia a megszakításra, amikor előfordul.
Amikor a megszakításkezelő befejezi a megszakítás végrehajtását, akkor a CPU folytatja annak a feladatnak a végrehajtását, amelyet leállt a megszakítás megválaszolására. Szoftver, hardver, felhasználó, bizonyos hiba a programban stb. A CPU kezelési jellegének megszakítása multitaskinghoz vezet, azaz a felhasználó egyszerre több különböző feladatot is végrehajthat.
Ha egynél több megszakítás érkezik a CPU-hoz, a megszakításkezelő segíti a feldolgozásra váró megszakítások kezelését. Mivel a megszakításkezelő a megszakítás fogadásából indul ki, az elsőbbséget ad a CPU által feldolgozásra váró megszakításoknak, és egy sorba rendezi őket a szervizeléshez.
A szavazás meghatározása
Ahogy láttuk a megszakításokban, az I / O eszköz bemenete bármikor megérkezhet, amikor a CPU-t kérte feldolgozni. A lekérdezés olyan protokoll, amely értesíti a CPU-t arról, hogy a készüléknek szüksége van a figyelemre. A megszakítással ellentétben, ahol az eszköz megmondja a CPU-nak, hogy CPU-feldolgozásra van szüksége, a lekérdezésben a CPU továbbra is megkérdezi az I / O-eszközt, hogy CPU-feldolgozásra van szüksége.
A CPU folyamatosan teszteli minden hozzá csatlakoztatott eszközt, hogy észlelje, hogy bármelyik eszköz CPU-figyelmet igényel-e. Minden eszköznek van egy parancssori bitje, amely jelzi az eszköz állapotát, azaz, hogy van-e valamilyen parancs, amelyet a CPU hajt végre, vagy sem. Ha a parancsbit 1-re van beállítva, akkor egy parancsot kell végrehajtani, ha a bit 0, akkor nincs parancs. A CPU- nak van egy elfoglalt bitje, amely jelzi a CPU állapotát, akár elfoglalt, akár nem. Ha a foglalt bit be van állítva 1, akkor elfoglalt valamilyen eszköz parancsának végrehajtásakor, különben 0 .
A szavazás algoritmusa
- Ha egy eszköznek van egy parancsa, amelyet a CPU hajt végre, akkor folyamatosan ellenőrzi a CPU elfoglalt bitjét, amíg meg nem szűnik (0).
- Ahogy az elfoglalt bit egyértelművé válik, az eszköz beírja a bitet a parancsregiszterébe, és ír egy bájtot az adat-out regiszterben.
- Most az eszköz beállítja (1) a parancssori bitet.
- Amikor a CPU ellenőrzi az eszközök parancskészülékét, és megállapítja, hogy beállított (1), akkor a (1) a foglaltat állítja be.
- Ezután a CPU leolvassa az eszköz parancsregiszterét, és végrehajtja az eszköz parancsát.
- A parancs végrehajtása után a CPU törli a (0) parancskészülék bitjét, az eszköz hibbitjét, hogy jelezze a készülék parancsának sikeres végrehajtását, és ezenkívül törli (0) a foglalt bitjét, hogy jelezze, hogy a CPU szabadon végrehajthatja más eszköz parancsát.
Fontos különbségek a megszakítás és a lekérdezés között az operációs rendszerben
- A megszakítás során az eszköz értesíti a CPU-t, hogy karbantartást igényel, míg a lekérdezésben a CPU többször ellenőrzi, hogy egy eszköz szervizelésre szorul-e.
- A megszakítás hardveres mechanizmus, mivel a CPU-nak van egy vezetéke, a megszakítás-kérés sora, amely jelzi, hogy a megszakítás történt. Másrészt a Polling olyan protokoll, amely folyamatosan ellenőrzi a vezérlőbiteket, hogy értesítse, hogy egy eszköznek valamit kell végrehajtania.
- A megszakításkezelő kezeli az eszközök által generált megszakításokat. Másrészről a lekérdezés során a CPU igényli az eszközt.
- A megszakításokat a megszakítás-kérés sor jelzi. A Command-ready bit azonban azt jelzi, hogy a készülék szervizelésre szorul.
- A megszakítások esetén a CPU csak akkor zavar, ha bármelyik eszköz megszakítja azt. Másrészről, a szavazás során a CPU sok CPU-ciklust pazarol, ha minden eszközön ismételten ellenőrzi a parancssori biteket.
- A megszakítás az idő bármely pillanatában történhet, míg a CPU rendszeres időközönként megőrzi az eszközt.
- A lekérdezés nem hatékony, ha a CPU továbbra is lekérdezi az eszközt, és ritkán találja meg a szervizelésre kész eszközt. Másrészről a megszakítások nem hatékonyak, ha az eszközök folyamatosan megszakítják a CPU-feldolgozást.
Következtetés:
Mind a Polling, mind az Interrupts hatékonyan részt vesz az I / O eszközökön. De a fentiekben leírt bizonyos körülmények között nem hatékonyak.