Ero Keskeytyksen Ja Ansan Välillä

Ero Keskeytyksen Ja Ansan Välillä
Ero Keskeytyksen Ja Ansan Välillä

Video: Ero Keskeytyksen Ja Ansan Välillä

Video: Ero Keskeytyksen Ja Ansan Välillä
Video: Αντιμετώπιση της Tuta Absoluta και Λοιπών Εντόμων και Ασθενειών του Κήπου με Βιολογικά Σκευάσματα! 2024, Huhtikuu
Anonim

Keskeytys vs. ansa

Missä tahansa tietokoneessa ohjelman normaalin suorituksen aikana voi olla tapahtumia, jotka voivat aiheuttaa CPU: n väliaikaisen pysähtymisen. Tällaisia tapahtumia kutsutaan keskeytyksiksi. Keskeytykset voivat johtua joko ohjelmisto- tai laitevioista. Laitteiden keskeytyksiä kutsutaan (yksinkertaisesti) keskeytyksiksi, kun taas ohjelmistojen keskeytyksiä kutsutaan poikkeuksiksi tai ansoja. Poikkeus on automaattisesti luotu ohjelmistokatkos, kun taas Trap on ohjelmoijan käynnistämä keskeytys, jonka ohjelmoija käynnistää. Kun keskeytys (ohjelmisto tai laitteisto) on nostettu, ohjaus siirretään erityiseen alirutiiniin nimeltä ISR (Interrupt Service Routine), joka pystyy käsittelemään keskeytyksen aiheuttamat olosuhteet.

Mikä on keskeytys?

Termi Keskeytys on yleensä varattu laitteiston keskeytyksille. Ne ovat ulkoisten laitteistotapahtumien aiheuttamia ohjelman hallinnan keskeytyksiä. Tässä ulkoinen tarkoittaa prosessorin ulkoista. Laitteiden keskeytykset tulevat yleensä monista eri lähteistä, kuten ajastinsiru, oheislaitteet (näppäimistöt, hiiri jne.), I / O-portit (sarja, rinnakkais jne.), Levyasemat, CMOS-kello, laajennuskortit (äänikortti, video) kortti jne.). Tämä tarkoittaa, että laitteistokatkoksia ei tapahdu melkein koskaan johtuen jonkin suorittavaan ohjelmaan liittyvästä tapahtumasta. Esimerkiksi tapahtuma, kuten käyttäjän näppäimistön painallus, tai sisäinen laitteistoajastimen aikakatkaisu voi aiheuttaa tällaisen keskeytyksen ja ilmoittaa keskusyksikölle, että tietty laite tarvitsee jonkin verran huomiota. Tällaisessa tilanteessa CPU lopettaa kaiken tekemänsä (ts. Keskeyttää nykyisen ohjelman),tarjoaa laitteen edellyttämän palvelun ja palaa normaaliin ohjelmaan. Kun laitteistokeskeytyksiä tapahtuu ja keskusyksikkö käynnistää ISR: n, muut laitteistokeskeytykset poistetaan käytöstä (esim. 80 × 86-koneissa). Jos tarvitset muita laitteistokatkoksia ISR: n ollessa käynnissä, sinun on tehtävä se nimenomaisesti tyhjentämällä keskeytyslippu (sti-käskyllä). 80 × 86-koneissa keskeytyslipun tyhjentäminen vaikuttaa vain laitteiston keskeytyksiin.keskeytyslipun tyhjentäminen vaikuttaa vain laitteiston keskeytyksiin.keskeytyslipun tyhjentäminen vaikuttaa vain laitteiston keskeytyksiin.

Mikä on ansa?

Ansa voidaan tunnistaa ohjauksen siirtona, jonka ohjelmoija aloittaa. Termiä Trap käytetään vaihtokelpoisesti termin Exception kanssa (joka on automaattisesti tapahtuva ohjelmiston keskeytys). Mutta jotkut saattavat väittää, että ansa on yksinkertaisesti erityinen aliohjelmakutsu. Joten he kuuluvat ohjelmistoon perustuvien keskeytysten luokkaan. Esimerkiksi 80 × 86-koneissa ohjelmoija voi käyttää int-käskyä ansaan. Koska ansa on aina ehdoton, ohjaus siirtyy aina ansaan liittyvään alirutiiniin. Tarkka käsky, joka kehottaa rutiinia ansan käsittelyyn, on helposti tunnistettavissa, koska ansan määrittelemiseen käytetään nimenomaista käskyä.

Mitä eroa on keskeytyksellä ja ansalla?

Keskeytykset ovat laitteistokatkoksia, kun taas loukut ovat ohjelmistohäiriöitä. Laitteiden keskeytysten esiintyminen poistaa yleensä muut laitteistokatkokset käytöstä, mutta tämä ei ole totta ansojen kohdalla. Jos sinun on kiellettävä laitteiston keskeytykset, kunnes ansa on annettu, sinun on nimenomaisesti tyhjennettävä keskeytyslippu. Ja yleensä tietokoneen keskeytyslippu vaikuttaa (laitteisto) keskeytyksiin ansojen sijaan. Tämä tarkoittaa, että tämän lipun tyhjentäminen ei estä ansoja. Toisin kuin ansoja, keskeytysten tulisi säilyttää CPU: n edellinen tila.

Suositeltava: