Přeruovací systém
Princip přeruení:
n -1, n atd. jsou adresy instrukcí. Pokud při běhu programu dojde k ádosti o přeruení, dokončí se právě probíhající instrukce a systém zajistí úklid kontextu do zásobníku pro přeruení. Kontext obsahuje obsahy střadače registrů v době přeruení a dále je uloena návratová adresa n +1 hlavního programu. Je proveden odskok na adresu instrukce pro obslunou rutinu (podprogram), přeruení je obsloueno. Instrukce konec přeruení zajistí přepsání kontextu zpět do registru (dojde k vyprázdnění zásobníku pro přeruení a přes návratovou adresu hlavního programu je tento sputěn a dále běí.
Přeruení můe být:
Dále se dělí:
Maskovatelné je druh přeruení, které závisí na nastavení klopného obvodu tzv.masky, který podle stavu na výstupu povolí nebo nepovolí přeruení. K tomu je určen v příznakovém registru bit IF (Interupt flag), který při nastavení do jedničky zajistí maskovatelné přeruení.
Jeliko periferních zařízení je více ne dvě, přidává se k procesorům řadič přeruení, který je řadí podle důleitosti (priority) a sděluje procesoru o jaký druh přeruení jde. Při kadém přeruení se volá obsluná rutina, která je k tomu určena.
Procesor pracuje s vektorovým systémem přeruení. Tabulka vektorů je uloena v operační paměti, větinou od adresy 0 a kadý vektor má velikost 4B. Je to celá adresa (segment i offset) a v operační paměti zabírá asi 1kB. Procesor rozezná 256 přeruení (0-255). Některé vektory jsou pevně určeny a nelze je měnit.
Tabulka vektoru:
00000 | Dělení nulou | vektor 0 |
00004 | Krokování | vektor 1 |
00008 | Nemaskovatelné přeruení | vektor 2 |
00012 | INT 3 | vektor 3 |
Aritmetické přetečení | vektor 4 | |
27 rezervovaných vektorů | ||
224 volných vektorů |
U maskovatelného přeruení dodá řadič přeruení i číslo vektoru, které specifikuje některou z periferií. 27 vektorů si rezervovali tvůrci systému a větinou nejsou vyuity.
Související odkazy
http://www.fi.muni.cz/usr/pelikan/ARCHIT/TEXTY/PROSTR2.HTML