Programmegszakítás
A megszakítás az, amikor a mikroprocesszor olyasmit tesz, amire nem kapott utasítást, mert olyan dolgok történnek, amelyek kívül esnek azon, amit a programnak tennie kellene. A megszakítások leggyakrabban azért történnek, mert a processzor jelet kap a hardvertől, de a programmal együtt futó szoftvertől is származhatnak. Megszakításokat okozhat többek között a billentyűk lenyomása a billentyűzeten, a beépített időzítő elindulása, egy adatátvitel, vagy bármilyen más olyan esemény, amely azonnali cselekvést igényel a processzortól. A megszakítások bármikor bekövetkezhetnek, miközben a processzor egy programot futtat, függetlenül attól, hogy a program forráskódjában hol található.
Ez az ábra azt mutatja, hogy mi történik, amikor egy megszakítást hívunk.
Hogyan működnek a megszakítások
A megszakítás hardveres vagy szoftveres hívását (megszakításkérésként vagy IRQ-ként ismert) a processzorban egy "megszakításkezelő" vagy "megszakításkiszolgáló rutin" (ISR) végzi. Ez egy veremre helyezi azt, amit éppen csinál, majd bizonyos utasításokat követ, amelyek a rendszer nevében elvégzik az adott feladatot, amelynek nem kell, hogy része legyen az általa végzett programnak. Miután befejezte az utasítások követését, az ISR visszaveszi azt, amit a veremre tett, és folytatja azt, amit a megszakítás előtt csinált.
A mai processzorok sok megszakításvezérlője megszakítási vektort használ többek között a megszakítások rendezésére aszerint, hogy honnan érkezett. A vektor általában azt a kódot tartalmazza, amelyet a megszakítás bekövetkezésekor le kell futtatni. Az ISR-ek általában a megszakítás kezeléséért, vagyis "kiszolgálásáért" felelősek, önmaguk üzemképes állapotban tartásával együtt.
A megszakítások felhasználása
- Feladatok rendszeres időközönként történő indítása
- Külső eszköz szervizelése, ami bármikor megtörténhet.
- A szinkron lekérdezés szükségességének megszüntetése
- Az operációs rendszer (OS) cselekvésre való késztetése
Kérdések és válaszok
K: Mi az a megszakítás?
V: A megszakítás a mikroprocesszor olyan művelete, amely külső események miatt nem része a végrehajtott programnak.
K: Mi okozza a megszakítások leggyakoribb előfordulását egy processzorban?
V: A megszakítások leggyakrabban a hardvertől érkező jelek fogadása miatt fordulnak elő a processzoron.
K: Okozhat-e megszakításokat a szoftver?
V: Igen, a megszakításokat a végrehajtott programmal párhuzamosan futó szoftver is okozhatja.
K: Soroljon fel néhány példát olyan eseményekre, amelyek megszakítást okozhatnak.
V: Megszakítást kiváltó események lehetnek például a billentyűk lenyomása a billentyűzeten, egy időzítő lezajlása és az adatátvitel.
K: Függ-e a megszakítás attól, hogy hol hajtják végre a programot?
V: Nem, a megszakítások a program végrehajtása során bármikor bekövetkezhetnek, függetlenül attól, hogy a program hol áll a forráskódban.
K: A megszakítás kívánatos esemény a mikroprocesszor számára?
V: A megszakítások általában nemkívánatos események egy mikroprocesszor számára, mivel megszakítják a program végrehajtását, és azonnali figyelmet igényelnek.
K: Hogyan reagál egy mikroprocesszor egy megszakításra?
V: A mikroprocesszor átmenetileg felfüggeszti a végrehajtott programot, és a megszakítás kezelésére egy megszakításkezelő rutint (ISR) hajt végre, mielőtt visszatérne a végrehajtott programhoz.