E-gradiva > Računalništvo > Sistemi > d_okolje > 05_stevec_prekinitve > Prekinitveni na\u010Din

Prijava

Prekinitveni način strežbe

Prekinitveni način strežbe prispeva k boljšemu izkoristku procesorjevega časa, zahteva pa nekaj dodatne strojne podpore (dodatni prekinitveni vhodi, prekinitveni krmilnik, dekodiranje prioritete).

Prekinitev je asinhron dogodek – nastopi lahko kadarkoli. Ne "ozira" se na to, kaj trenutno počne izvajani program. Prekinitvena zahteva lahko nastopi kadarkoli. CPE namreč ob koncu vsake ukazne periode testira prekinitveni vhod zaradi morebitne zahteve po prekinitvi.

Ko mikroprocesor zazna prekinitveni signal, mora najprej poskrbeti, da shrani trenutno stanje pomembnih registrov (programskega števca, splošnih registrov, zastavic),  da bo lahko po zaključku prekinitve nemoteno nadaljeval prekinjeni program. Stanje registrov se ob vsaki prekinitvi shrani v določen del delovnega pomnilnika, v sklad (an. stack).

Za sklad je značilen mehanizem LIFO (angl. First In Last Out) -  podatki se »nalagajo« eden za drugim v zaporedne lokacije v istem vrstnem redu, kot prihajajo. Branje pa je obratno: najprej se prebere podatek, ki je bil shranjen nazadnje. Podatek, ki je bil vstavljen prvi, bo prebran nazadnje.

(Tukaj je ilustracija/animacija: kolona avtomobilov, ki zapelje v zaprt predor. Ven morajo odhajati v obratnem vrstnem redu.)

Ko je trenutno delovno okolje procesorja shranjeno v sklad, začne procesor izvajati zahtevani prekinitveni podprogram

Ko je prekinitveni podprogram končan, procesor iz sklada prebere podatke o svojem stanju pred prekinitvijo, ter nadaljuje prekinjeni program. Ker je med shranjenimi  podatki  tudi  vrednost programskega števca ob prekinitvi, se bo program zdaj nadaljeval prav tam - pri ukazu, pri katerem ukazu je bil procesor prekinjen.

Avtorji: Tea Lončarić , Andreja Vehovec, Marko Kastelic , David Drofenik, Saša Divjak, Alenka Kavčič , Matija Marolt, Marko Privošnik, Milan Podbršček, Janko Harej, Andrej Florjančič