Megszakítási rendszer Flashcards
A megszakítási rendszer fogalma
A feldolgozás szempontjából véletlennek tekinthető események kezelése. Cél: a változó körülmények
között az optimális működés biztosítása.
+kép43
Mi történik megszakítás esetén?
- Automatikusan tárolódik az éppen futó program állapota. (Regiszterek, állapotjelzők)
- Beállítódik a megszakító rutin kontextusa
Megszakítási okok/források (prioritási sorrendben)
- Gépi hibák: automatikus hibafigyelő áramkörök jelzése
- I/O források
- Külső források: RST, hálózati kommunikáció
- Programozási források
Mik tartoznak a gépi hibák: automatikus hibafigyelő áramkörök jelzése megszakításai közé?
a. hibakezelő kódok, adatátviteli vonalak hibáit tárja fel, regiszterek, memória hibák
jelzésére szolgál (pl.: paritás)
b. energiaellátás: zavar esetén jelez
c. hűtés rendszer: zavar esetén jelez
Mik tartoznak az I/O források által létrehozott megszakítások közé?
a. CPU által kezdeményezett I/O műveletek befejezését jelző megszakítások
b. üzenetközlést kezdeményező perifériák megszakítási kérései
Mik tartoznak a programozási források által létrehozott megszakítások közé?
a. Szándékos: pld.: OS rendszeres hívások, BIOS hívások
b. nem várt esemény (hibakezelés)
c. Programozási hibák:
i. memória védelem megsértése (véd a véletlen felülírásoktól)
ii. tényleges tárkapacitás túllépése, túlcímezés
iii. címzési előírások megsértése: 2, 4, 6 byte-os címzés esetén a cím páros byteon
kezdődhet
iv. aritmetikai-logikai műveletek miatti megszakítások pl.: túlcsordulás kezelése
A megszakítás előkészítése
- egy eszköz megszakításkérést küld a CPU-nak, aktiválja az INTR vezérlővonalat
- elfogadható-e a megszakítás?
- megszakítás kezelő áramkör
A megszakítás érvénybe jut, ha
- az aktuális program vagy megszakítás megszakítható
- megfelelő a prioritás nagysága
- az adott megszakítás nincs letiltva
- a CPU INTACK jellel nyugtázza a megszakítást
- a kérő deaktiválja INTR-t
Hardver által végzett feladatok a megszakítások során
- A CPU a programtól független veremtárolóba menti a megszakított program aktuális állapot
információit. (PC – állapot bitek (állapot regiszterek) (azért menti el, mert ezek az
információk kellenek a program esetleges folytatásához)) - Betölti a megszakítás feldolgozó program kezdő címét és beállítja a PC-t (program counter)
Szoftver által végzett feladatok a megszakítások során
- a program adatterének tárolása, mentése
- a megszakításkérő egység beazonosítása
- megszakítás kiszolgálása
- a program adatterének visszatöltése
Megszakítások csoportosítása
kép44
Egyszintű megszakítás
például: legyen összesen 3db megszakítási folyamat
3 prioritási szint -> 1. a legmagasabb, majd a 2. és a 3. a legkisebb.
Megszakításnál vagy annak vizsgálatánál a magasabb prioritású kapja meg a feldolgozás lehetőségét
előbb. (Ezért lesz a példában az egyes megszakítása hamarabb, mint a hármasé.)
A felfelé mutató nyilak és a mellettük lévő számok jelzik az egyes folyamatok megszakításának a
kezdetét.
kép45
Többszintű megszakítási rendszer
Az egyszintű megszakításnál alkalmazott példa él itt is.
A processzor mindig a legnagyobb prioritású megszakítást keresi, de ha több azonos prioritású is van, akkor azok közül a legalacsonyabb szintűvel kezdni.
kép46
Mielőtt a hármas prioritásút elkezdené, észreveszi, hogy van egy nála kisebb prioritású és áttér arra.
Többszintű, többvonalú megszakítási rendszer
• prioritások (1, 2, 3) • osztályok (1, 2, 3) • osztályon belül (a, b, c, d) • osztályokon belül egyszintű prioritás kép47