Keskeytä vs. Poikkeus
Missä tahansa tietokoneessa ohjelman normaalin suorituksen aikana voi tapahtua tapahtumia, jotka voivat aiheuttaa CPU: n tilapäisen pysähtymisen. Tämän tyyppisiä tapahtumia kutsutaan keskeytyksiksi. Keskeytykset voivat johtua joko ohjelmisto- tai laitteistovirheistä. Laitteiston keskeytyksiä kutsutaan (yksinkertaisesti) keskeytyksiksi, kun taas ohjelmistokatkoksia kutsutaan poikkeuksiksi. Kun keskeytys (ohjelmisto tai laitteisto) on nostettu, ohjaus siirretään erityiseen aliohjelmaan, nimeltään ISR (Interrupt Service Routine), joka pystyy käsittelemään keskeytyksen aiheuttamat olosuhteet..
Mikä on keskeyttää?
Termi Interrupt on yleensä varattu laitteistokatkoksille. Ne ovat ulkoisten laitteistotapahtumien aiheuttamia ohjelmanhallinnan keskeytyksiä. Tässä CPU: n ulkopuoliset välineet. Laitteiston keskeytykset tulevat yleensä monista eri lähteistä, kuten ajastinpiiri, 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 suorittavan ohjelman yhteydessä tapahtuneiden tapahtumien takia. Esimerkiksi tapahtuma, kuten käyttäjän näppäimistön painallus tai sisäisen laitteiston ajastimen aikakatkaisu, voi lisätä tällaista keskeytystä ja voi ilmoittaa prosessorille, että tietty laite tarvitsee jonkin verran huomiota. Tällaisessa tilanteessa CPU lopettaa kaiken, mitä se on tehnyt (ts. Keskeyttää nykyisen ohjelman), tarjoaa laitteen vaatiman palvelun ja palaa normaaliin ohjelmaan. Kun laitteistohäiriöitä tapahtuu ja CPU käynnistää ISR: n, muut laitteistokeskeytykset poistetaan käytöstä (esim. 80 × 86 koneessa). Jos tarvitset muita laitteistohäiriöitä tapahtumaan ISR: n ollessa käynnissä, sinun on tehtävä se nimenomaisesti poistamalla keskeytyslippu (sti-ohjeilla). 80 × 86 -laitteissa keskeytyslipun poistaminen vaikuttaa vain laitteistokatkoksiin.
Mikä on poikkeuksia??
Poikkeus on ohjelmistokatko, joka voidaan tunnistaa erityiseksi käsittelijärutiiniksi. Poikkeus voidaan tunnistaa automaattisesti esiintyväksi ansaksi (ansa voidaan tunnistaa ohjauksen siirroksi, jonka ohjelmoija aloittaa). Poikkeuksiin ei yleensä liity erityisiä ohjeita (loukut luodaan tietyn käskyn avulla). Joten, poikkeus tapahtuu "poikkeuksellisen" tilan vuoksi, joka tapahtuu ohjelman suorituksen aikana. Esimerkiksi jakaminen nollalla, laittoman opoodin suorittaminen tai muistiin liittyvä vika voi aiheuttaa poikkeuksia. Aina poikkeusta nostettaessa CPU keskeyttää väliaikaisesti suorittamansa ohjelman ja käynnistää ISR: n. ISR sisältää mitä tehdä paitsi. Se voi korjata ongelman tai, jos se ei ole mahdollista, se voi keskeyttää ohjelman sulavasti tulostamalla sopivan virheviestin. Vaikka tietty ohje ei aiheuta poikkeusta, poikkeuksen aiheuttaa aina käsky. Esimerkiksi jako nollavirheellä voi tapahtua vain jakamiskäskyn suorittamisen aikana.
Mikä ero on keskeytyksen ja poikkeuksen välillä??
Keskeytykset ovat laitteistokatkoksia, kun taas poikkeukset ovat ohjelmistokatkoksia. Laitteistokatkokset yleensä poistavat käytöstä muut laitteistokeskeytykset, mutta tämä ei pidä paikkaansa poikkeuksia. Jos joudut kieltämään laitteistokeskeytykset, kunnes poikkeus on annettu, sinun on poistettava keskeytyslippu selvästi. Ja yleensä tietokoneen keskeytyslippu vaikuttaa (laitteisto) keskeytyksiin poikkeusten sijaan. Tämä tarkoittaa, että tämän lipun poistaminen ei estä poikkeuksia.