Polling and Interrupt antaa CPU: n pysäyttää sen, mitä se tekee ja vastaa tärkeimpään tehtävään. Polling and Interrupt ovat monin eri tavoin erilaisia. Mutta peruspiste, joka erottaa kyselyn ja keskeytyksen, on se, että kyselyssä CPU tarkistaa I / O-laitteita säännöllisesti, tarvitseeko se CPU-palvelua, kun taas keskeytyksessä I / O-laite keskeyttää CPU: n ja kertoo CPU: lle, että se tarvitsee CPU-palvelua . Olen keskustellut eräistä eroista Interrupt ja Polling välillä alla olevassa vertailukaaviossa.
Vertailukaavio
Vertailun perusteet | Keskeyttää | äänestys |
---|---|---|
perustiedot | Laite ilmoittaa CPU: lle, että se tarvitsee CPU: n huomiota. | CPU tarkistaa jatkuvasti laitteen tilan, tarvitaanko se CPU: n huomiota. |
Mekanismi | Keskeytys on laitteistomekanismi. | Pollaus on protokolla. |
Huoltoa | Keskeytyskäsittelijä palvelee laitetta. | CPU palvelee laitetta. |
osoitus | Keskeytyspyynnön rivi osoittaa, että laite tarvitsee huoltoa. | Comand-valmis bitti osoittaa, että laite tarvitsee huoltoa. |
prosessori | CPU häiritsee vain silloin, kun laite tarvitsee huoltoa, mikä säästää CPU-syklejä. | CPU: n on odotettava ja tarkistettava, tarvitseeko laite huoltoa, joka tuhlaa paljon CPU-syklejä. |
esiintyminen | Keskeytys voi tapahtua milloin tahansa. | CPU kyselee laitteita säännöllisin väliajoin. |
tehokkuus | Keskeytys muuttuu tehottomaksi, kun laitteet pysyvät keskeytyksettä toistuvasti. | Pollaus tulee tehottomaksi, kun CPU löytää harvoin laitteen käyttövalmiiksi. |
esimerkki | Anna kellorenkaan avata ovi tarkistaa kuka on tullut. | Pidä jatkuvasti kiinni ovesta ja tarkista, onko joku tullut. |
Määritelmä keskeytys
Keskeytys on laitteistomekanismi, jonka avulla CPU voi havaita, että laite tarvitsee sen huomion. CPU: ssa on langan keskeytyspyyntölinja, jonka CPU tarkistaa jokaisen yksittäisen käskyn suorittamisen jälkeen. Kun CPU havaitsee keskeytyssignaalin keskeytyspyynnön rivillä, CPU pysäyttää tällä hetkellä suorittavan tehtävänsä ja vastaa I / O-laitteen keskeytyslähetykseen siirtämällä ohjaimen keskeyttämään käsittelijän . Keskeytyskäsittelijä ratkaisee keskeytyksen huoltamalla laitetta.
Vaikka CPU ei ole tietoinen siitä, milloin keskeytys tapahtuisi, koska se voi tapahtua milloin tahansa, mutta sen on vastattava keskeytykseen aina, kun se tapahtuu.
Kun keskeytyskäsittelijä lopettaa keskeytyksen suorittamisen, CPU jatkaa sen tehtävän suorittamista, jonka se on lopettanut keskeyttämistä varten. Ohjelmisto, laitteisto, käyttäjä, jokin virhe ohjelmassa jne. Voivat myös aiheuttaa keskeytyksen. CPU: n käsittelyn keskeyttäminen johtaa monitehtävään, eli käyttäjä voi suorittaa useita erilaisia tehtäviä samanaikaisesti.
Jos CPU: lle lähetetään useampi kuin yksi keskeytys, keskeytyskäsittelijä auttaa käsittelemään odottavia keskeytyksiä. Koska keskeytyskäsittelijä laukaisee keskeytyksen vastaanottamisen, se priorisoi keskeytykset, jotka odottavat prosessorin suorittamaa prosessointia, ja järjestää ne jonoon saadakseen huollon.
Kyselyn määritelmä
Kuten olemme nähneet keskeytyksissä, I / O-laitteen tulo voi saapua milloin tahansa pyytämällä CPU: ta käsittelemään sitä. Pollaus on protokolla, joka ilmoittaa CPU: lle, että laite tarvitsee sen huomion. Toisin kuin keskeytyksessä, jossa laite kertoo CPU: lle, että se tarvitsee suorittimen prosessointia, kyselyssä kysely kysyy I / O-laitteelta, tarvitaanko CPU-prosessoria.
CPU testaa jatkuvasti kaikkia siihen liitettyjä laitteita havaitsemaan, tarvitaanko jokin laite CPU: n huomiota. Jokaisessa laitteessa on käskyvalmis bitti, joka ilmaisee kyseisen laitteen tilan eli onko sillä jokin CPU: n suorittama komento vai ei. Jos komennon bitti on asetettu 1, niin siinä on jokin muu komento, jos bitti on 0, niin sillä ei ole komentoja. CPU: ssa on varattu bitti, joka ilmaisee CPU: n tilan riippumatta siitä, onko se varattu vai ei. Jos varattu bitti on asetettu 1, se on varattu jonkin laitteen käskyn suorittamisessa, muuten se on 0 .
Algoritmi kyselyyn
- Kun laitteella on jokin CPU: n suorittama komento, se tarkistaa jatkuvasti CPU: n varatun bitin, kunnes se tulee selväksi (0).
- Kun varattu bitti tulee selväksi, laite asettaa kirjoitusbitin komentorekisteriinsä ja kirjoittaa tavun datan ulosrekisteriin.
- Nyt laite asettaa (1) komennolla valmis bitin.
- Kun CPU tarkistaa laitteiden komennonvalmis bitin ja löytää sen asetettuna (1), se asettaa (1) sen varatun bitin.
- CPU lukee sitten laitteen komentorekisterin ja suorittaa laitteen komennon.
- Käskyn suorittamisen jälkeen CPU tyhjentää (0) komennonvalmis bitin, laitteen virhebitin ilmaista laitteen käskyn onnistuneen suorittamisen ja lisäksi se tyhjentää (0) sen varatun bitin myös osoittamaan, että CPU voi vapaasti suorittaa jonkin toisen laitteen komento.
Keskeiset erot keskeytyksen ja pollauksen välillä käyttöjärjestelmässä
- Keskeytyksessä laite ilmoittaa CPU: lle, että se tarvitsee huoltoa, kun taas äänestyksessä CPU tarkistaa toistuvasti, tarvitaanko laitetta huoltoa.
- Keskeytys on laitteistomekanismi , koska CPU: lla on lanka, keskeytyspyyntölinja, joka signaalia keskeyttää on tapahtunut. Polling on toisaalta protokolla, joka valvoo ohjausbittejä ilmoittamaan, onko laitteella jotain suoritettavaa.
- Keskeytyskäsittelijä käsittelee laitteiden aiheuttamia keskeytyksiä. Toisaalta, kyselyssä, keskusyksikkö palvelee laitetta tarvittaessa.
- Keskeytyspyyntölinja ilmoittaa keskeytyksistä . Command-ready -bitti osoittaa kuitenkin, että laite tarvitsee huoltoa.
- Keskeytyksissä CPU häiritsee vain, kun jokin laite keskeyttää sen. Toisaalta, äänestyksessä, CPU-jätteet tuhoavat paljon CPU-syklejä tarkistamalla toistuvasti jokaisen laitteen komentokäyttöön tarkoitetun bitin.
- Keskeytys voi tapahtua missä tahansa ajanhetkessä, kun taas CPU pitää laitteen kyselyn säännöllisin väliajoin .
- Pollaus muuttuu tehottomaksi, kun keskusyksikkö pitää edelleen kyselyä laitteesta ja löytää harvoin laitteen, joka on valmiina huoltoon. Toisaalta keskeytykset tulevat tehottomiksi, kun laitteet jatkavat keskeytyksettä CPU-prosessoinnista toistuvasti.
johtopäätös:
Sekä pollaus että keskeytykset ovat tehokkaita I / O-laitteissa. Mutta ne voivat tulla tehottomiksi tietyssä edellä kuvatulla tavalla.