Keskeytys (tietotekniikka)

Hakusana ”IRQ” ohjaa tänne. IRQ on myös Irakin maatunnus.

Keskeytys on mekanismi, jonka avulla saadaan tietokoneen suoritin keskeyttämään meneillään olevan tietokoneohjelman suoritus ja siirtymään suorittamaan keskeytyskohtaisen keskeytyskäsittelijän (engl. interrupt handler) koodia.

Keskeytys voi olla joko laitteistopohjainen tai ohjelmallinen.

Laitteistokeskeytys

Pääartikkeli: Laitteistokeskeytys

Laitteistokeskeytyksen aiheuttaa tyypillisesti jokin asynkroninen tapahtuma (engl. event), esimerkiksi tietokoneen oheislaite kuten kiintolevy. Tällainen keskeytys voidaan tarvittaessa estää, ja tyypillisesti keskeytys aiheuttaa suorittimen siirtymisen keskeytyspalveluun, kun suorituksessa oleva konekäsky on tehty loppuun asti.

Oheislaitteiden aiheuttamat keskeytykset ovat asynkronisia, eli ne eivät liity siihen konekäskyyn, jonka aikana ne virittyvät.

Ohjelmistokeskeytys

Ohjelmistokeskeytyksen aiheuttaa konekäsky, jonka parametrien perusteella käyttöjärjestelmän ydin päättelee oikean keskeytyspalvelun. Tällaista konekäskyä kutsutaan myös ansaksi (engl. trap). Ohjelmistokeskeytys on loogisesti hyvin lähellä aliohjelmakutsua. Sitä ei kuitenkaan voi korvata aliohjelmakutsumekanismilla, sillä se vaihtaa suorittimen tilan käyttäjätilasta (engl. user mode) etuoikeutettuun tilaan (engl. kernel mode, supervisor mode). Vastaava vaihdos tapahtuu kaikissa keskeytyksissä. Koska ohjelmistokeskeytys johtuu ajettavasta konekäskystä, sen sanotaan olevan synkroninen keskeytys.

Ohjelmavirhekeskeytys

Virheellinen tai kyseisessä suorittimen tilassa kielletty konekäsky aiheuttaa ohjelmavirhekeskeytyksen. Virhe voi olla viittaus olemattomaan tai suojattuun muistiosoitteeseen tai olematon konekäsky. Edellä olleisiin keskeytyksiin nähden erityistä on, että suoritettava käsky voidaan keskeyttää ennen sen suorittamista loppuun. Ohjelmavirhekeskeytys on luonnollisesti synkroninen.

Ohjelmavirhekeskeytyksen tarkoitus on pysäyttää toiminto virheen tullessa. Mekanismia on käytetty myös mahdollistamaan käskykannan laajentaminen siten, että ohjelmavirhekeskeysrutiini tunnistaa tuntemattoman konekäskyn ja suorittaa sitä vastaavat toimenpiteet. Näin uudemman suoritinversion käskykantaa on voitu ajaa vanhemmassakin suorittimessa, tosin tehokkuuden kustannuksella.

Läsnäolokeskeytys

Edellisten lisäksi virtuaalimuisti voi aiheuttaa läsnäolokeskeytyksen. Läsnäolokeskeytys pystyy keskeyttämään ajossa olevan käskyn; joissain suorittimissa jopa niin, että käskyä voidaan jatkaa sen keskeltä, kun virtuaalimuistijärjestelmä on saanut haettua tarvittavat tiedot keskusmuistiin. Vaihtoehtona on aloittaa käsky alusta, mikä on tyypillinen ratkaisu RISC-arkkitehtuurin mukaisissa suorittimissa.

Muilla kielillä
azərbaycanca: Aparat kəsilməsi
Bahasa Indonesia: Interupsi (perangkat keras)
Bahasa Melayu: Sampukan
català: Interrupció
čeština: Přerušení
dansk: Interrupt
Deutsch: Interrupt
eesti: Katkestus
English: Interrupt
español: Interrupción
فارسی: وقفه
한국어: 인터럽트
italiano: Interrupt
lietuvių: Pertraukimas
Nederlands: Interrupt
norsk: Interrupt
polski: Przerwanie
português: Interrupção
русский: Прерывание
Simple English: Interrupt
slovenčina: Prerušenie
slovenščina: Prekinitev
کوردی: ناوبڕ
svenska: Avbrott
українська: Переривання
中文: 中斷