Keskeytys (tietotekniikka)
Keskeytys on tilanne, jossa mikroprosessori tekee jotain, mitä sen ei ole käsketty tehdä, koska ohjelman ulkopuolella tapahtuu asioita, joita sen ei pitäisi tehdä. Keskeytykset tapahtuvat useimmiten siksi, että prosessori saa signaalin laitteistosta, mutta ne voivat tulla myös ohjelman kanssa suoritettavasta ohjelmistosta. Keskeytyksiä voivat aiheuttaa muun muassa näppäimistön näppäinten painaminen, sisäänrakennetun ajastimen käynnistyminen, tiedonsiirto tai mikä tahansa muu tapahtuma, joka vaatii prosessorilta toimintaa välittömästi. Keskeytyksiä voi tapahtua milloin tahansa prosessorin suorittaessa ohjelmaa, riippumatta siitä, missä kohtaa ohjelman lähdekoodia se on.
Tämä kaavio näyttää, mitä tapahtuu, kun keskeytystä kutsutaan.
Miten keskeytykset toimivat
Laitteisto- tai ohjelmistokutsu keskeytykseen (tunnetaan nimellä keskeytyspyyntö tai IRQ) hoidetaan prosessorin keskeytyksen käsittelijällä tai keskeytyspalvelurutiinilla (ISR). Se laittaa pinoon sen, mitä se sillä hetkellä tekee, ja seuraa sitten tiettyjä ohjeita, jotka tekevät järjestelmän puolesta tietyn tehtävän, jonka ei tarvitse olla osa sen tekemää ohjelmaa. Kun ISR on noudattanut ohjeita, se ottaa takaisin pinoon laittamansa tiedot ja jatkaa sitä, mitä se teki ennen keskeytystä.
Monet nykyisten prosessoreiden keskeytysohjaimet käyttävät keskeytysvektoria muun muassa keskeytysten lajitteluun sen perusteella, mistä ne ovat peräisin. Vektori sisältää yleensä koodin, joka on suoritettava keskeytyksen tapahtuessa. ISR:t ovat yleensä vastuussa keskeytyksen käsittelystä eli "palvelemisesta" sekä itsensä pitämisestä toimintakunnossa.
Keskeytysten käyttö
- Tehtävien käynnistäminen säännöllisin väliajoin
- Ulkoisen laitteen huolto, joka voi tapahtua milloin tahansa.
- Poistaa synkronisen kyselyn tarpeen
- Käyttöjärjestelmän (OS) aktivoiminen toimintaan
Kysymyksiä ja vastauksia
K: Mikä on keskeytys?
V: Keskeytys on mikroprosessorin suorittama toimenpide, joka ei ole osa suoritettavaa ohjelmaa ulkoisten tapahtumien vuoksi.
K: Mikä aiheuttaa keskeytyksiä useimmiten prosessorissa?
V: Keskeytyksiä esiintyy prosessorissa useimmiten laitteistosignaalien vastaanottamisen vuoksi.
K: Voivatko keskeytykset johtua ohjelmistosta?
V: Kyllä, keskeytyksiä voivat aiheuttaa myös ohjelmistot, jotka suoritetaan suoritettavan ohjelman rinnalla.
K: Luettele muutamia esimerkkejä tapahtumista, jotka voivat aiheuttaa keskeytyksen.
V: Esimerkkejä tapahtumista, jotka voivat aiheuttaa keskeytyksen, ovat näppäimistön näppäinten painaminen, ajastimen käynnistyminen ja tiedonsiirto.
K: Riippuuko keskeytys siitä, missä ohjelma suoritetaan?
V: Ei, keskeytyksiä voi esiintyä milloin tahansa ohjelman suorituksen aikana riippumatta siitä, missä vaiheessa ohjelman lähdekoodi on.
K: Onko keskeytys mikroprosessorin kannalta toivottava tapahtuma?
V: Keskeytykset ovat yleensä mikroprosessorin kannalta ei-toivottuja tapahtumia, koska ne häiritsevät ohjelman suoritusta ja vaativat välitöntä huomiota.
K: Miten mikroprosessori reagoi keskeytykseen?
V: Mikroprosessori keskeyttää väliaikaisesti suoritettavan ohjelman ja suorittaa keskeytyspalvelurutiinin (ISR) keskeytyksen käsittelemiseksi ennen kuin se palaa suoritettavaan ohjelmaan.