Naprej Nazaj Kazalo

6. Kako delujejo enote in prekinitve?

Tipkovnica je zelo enostavna vhodna enota: enostavna, ker generira majhne količine podatkov, in to zelo počasi (za računalniške pojme). Ko pritisnemo tipko, elektronika v tipkovnici po kablu sporoči zahtevek po strojni prekinitvi.

Naloga operacijskega sistema je, da pazi na takšne zahtevke. Za vsako vrsto prekinitve obstoja prekinitveni servisni program, ki je del jedra operacijskega sistema, ki prebere in vse potrebne podatke o prekinitvi -- v tem primeru kodo pritisnjene ali spuščene tipke -- in jih shrani, dokler ne pridejo na vrsto za obdelavo.

Prekinitveni servisni program za tipkovnico ima razmeroma lahko delo -- kode tipk prepiše na sistemsko območje v pomnilniku. Tam bodo počakale, da jih pregleda program, ki ga je jedro trenutno pooblastilo za branje s tipkovnice.

Tudi bolj zapletene vhodne enote, denimo disk ali omrežna kartica, delujejo podobno. Prej smo omenili, da diskovni krmilnik po vodilu sporoči, ko je zahtevek za branje z diska izveden. V resnici diskovni krmilnik sproži zahtevek za prekinitev. Prekinitev prestreže ustrezni servisni program, ta pa prepiše podatke v pomnilnik in poskrbi, da bo program, ki je sprožil zahtevo po prebiranju diska, podatke tudi našel.

Prekinitve so razvrščene po prednostnih ravneh, s čimer je določen vrstni red obdelave prekinitev. Prekinitve z nizko pomembnostjo (denimo tipkovnica) morajo počakati, da se najprej obdelajo morebitne prekinitve z visoko pomembnostjo (ura, disk). Unix daje prednost dogodkom, ki morajo biti obdelani hitro, da lahko sistem teče čim bolj gladko.

Med sporočili ob zagonu ste morda opazili oznake IRQ, ki so jim sledile različne številke. Morda veste tudi, da je eden od pogostih načinov, kako računalnik slabo nastavimo, ta, da dvema enotama določite, naj uporabljata isti IRQ -- ne veste pa povsem, zakaj je tako.

Tu je odgovor. IRQ je kratica za ,,interrupt request`` (angl. zahtevek za prekinitev). Operacijski sistem ob zagonu ugotovi, katera enota bo uporabljala prekinitev s katero številko, in ji priredi ustrezni prekinitveni servisni program. Če bi dve napravi nenadzorovano uporabljali isti signal IRQ, bi zahtevke z ene od naprav obdelal napačen servisni program. V najboljšem primeru to pomeni vsaj to, da je enota blokirana, nekatere operacijske sisteme pa lahko tak odziv včasih zmede tako hudo, da se zrušijo.


Naprej Nazaj Kazalo