Programmegszakítás

hardver vagy szoftver által kibocsátott jel a processzor felé, jelezve az azonnali figyelmet igénylő eseményt
Ez a közzétett változat, ellenőrizve: 2019. március 2.

A programmegszakítás (megszakítás, interrupt) a digitális számítógépeknél (programozható asztali számológépeknél, mikroprocesszoroknál) az éppen feldolgozás alatt lévő program félbehagyásának és egy magasabb prioritású (fontosabb, sürgősebb) indításának műveletsorozata, elmentve az éppen futó program állapotát egy átmeneti tárolóba, hogy az a későbbiekben folytatható legyen. Ennek végrehajtása után a programvégrehajtás ott folytatódik, ahol abbamaradt (visszatöltve az eredeti program állapotát).

A programmegszakítást az teszi szükségessé, hogy a programok végrehajtása során felléphetnek olyan események, melyek egyszerű, hatékony kezelése csak az utasítás-végrehajtás „normális” menetének átmeneti felfüggesztésével lehetséges.

Ilyenek:

  • meghatározott külső műveletek befejezése, melyek bekövetkezésére számítani lehet, de ezek időpontja pontosan nem tervezhető (egy periféria jelzi, hogy egy input- vagy outputműveletet befejeződött)
  • szándékos, azaz programvezérelt módon generált események (rendszerhívások)
  • meghatározott programhibák (pl. 0-val való osztás)
  • teljesen véletlenszerűen és váratlanul fellépő események (súlyos hardverhiba vagy áramkimaradás)

A megszakítási rendszer a programmegszakítások prioritáshelyes végrehajtásához és a megszakítást kiváltó jelek kezeléséhez szükséges áramkörök és eljárások összessége. A megszakítási rendszerek lehetnek egy- és többszintűek. Előbbi esetben egy megszakítás kiszolgálása alatt le vannak tiltva az újabb megszakítások. A kifinomultabb rendszerek többszintű megszakítást tesznek lehetővé. Ilyenkor lehetséges megszakítás fogadása megszakítás kezelés alatt is, egy úgynevezett maszkregiszter segítségével állítható be, hogy adott „interrupt” idején melyek a fogadható magasabb prioritású megszakítások.