Prekinitev

Iz Wikipedije, proste enciklopedije
Skoči na: navigacija, iskanje

Prekinitvena rutina je programska koda, ki je del operacijskega sistema in služi za upravo prekinitvenih klicev. Vsak gonilnik ima lastno prekinitveno rutino, ki jo sistem izvede, kadar prekinitev pripada tej rutini.

Prekinitveni zahtevek (ang. Interrupt Request) je dogodek, ki povzroči začasno prekinitev ali nadaljevanje izvajanja uporabniških programov. Prekinitve so lahko programske ali strojne. Programske prekinitve so lahko razni muteksi1, signali, katerih povzročitelj je programska koda. Strojne prekinitve povzroča strojna oprema, da se lahko odziva na programsko opremo (npr. operacijski sistem). Zahtevke strojnih prekinitev zajema operacijski sistem, na strojnem nivoju pa jih najprej sprejme naprava PIC ki jih razvrsti po prioritetah.

Jedro operacijskega sistema se na prekinitve odziva s prekinitvenimi rutinami. Ko jedro dobi prekinitev, sproži razvrščevalnik, ta pa prekine izvajanje trenutnega procesa in prične z izvajanjem prekinitvene rutine. Uporabniku operacijskega sistema so te rutine bolj znane kot gonilniki (ang. drivers). V primeru, da jedro že izvaja prekinitveno rutino, bo pogledal kakšno prioriteto ima prihajajoča prekinitev. Če je ta večja od trenutno izvajajoče, izvajajočo prekine in prične z novo. Ko se ta konča, nadaljuje s prejšnjo prekinitvijo. Prekinitvena rutina se mora končati čim prej, da lahko jedro nadaljuje z delom.

Najbolj pomembna prekinitev za jedro sistema je prekinitev sistemske ure (ang. system clock). Ta ima najvišjo prioriteto in se izvršuje v zelo veliki frekvenci, po navadi vsako milisekundo. Prekinitvena rutina za sistemsko uro izvede dve zelo pomembni nalogi: poskrbi za časovno funkcionalnost jedra in sproži razvrščevalnik.