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.Zoom
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.

AlegsaOnline.com - 2020 / 2023 - License CC3