Ajánlott, 2024

Szerkesztő Választása

A megszakítás és a lekérdezés közötti különbség az operációs rendszerben

Számos külső eszköz van csatlakoztatva a CPU-hoz, mint az egér, a billentyűzet, a szkenner, a nyomtató stb. Ezek az eszközök CPU-figyelmet igényelnek. Tegyük fel, hogy a CPU foglalt egy PDF megjelenítésében, és az asztalon lévő ablak médialejátszó ikonjára kattint. Bár a CPU-nak nincs ötlete, hogy egy ilyen esemény forduljon elő, de az I / O-eszközökről az ilyen bemenetekre kell reagálnia. A megszakítás és a lekérdezés a két módja annak, hogy kezeljük az eszközök által generált eseményeket, amelyek bármikor megtörténhetnek, miközben a CPU elfoglalt egy másik folyamat végrehajtásában.

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 alapjaMegszakításSzavazá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.
mechanizmusA megszakítás hardveres mechanizmus.A szavazás protokoll.
SzervizA megszakításkezelő a készüléket szolgálja.A CPU a készüléket használja.
JelzésA 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.
processzorA 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ényA megszakítás bármikor történhet.A CPU rendszeres időközönként lekérdezi az eszközöket.
HatékonyságA 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éldaHagyja, 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.

Top