Vhodno - izhodni podsistem


V sklopu ra�unalni�kega sistema je ve� krmilnikov perifernih naprav (device controllers). Dovolj tipi�no so ti krmilniki priklju�eni na skupno vodilo, ki omogo�a dostop do pomnilnika. Na posamezen krmilnik je lahko povezanih tudi ve� naprav. Primer takega krmilnika je SCSI krmilnik. (Small Computer System Interface). Naloga krmilnika je premik podatkov med periferno napravo in lokalnim pomnilnikom.

Za start posamezne vhodno-izhodne operacije mora CPE vpisati ustrezne kode v registre v perifernega krmilnika. Krmilnik nato izvede ustrezno operacijo (obi�ajno prenos) in nato obvesti centralno procesno enoto, da je operacija zaklju�ena. Temu dogodku pravimo prekinitveni zahtevek.

Tako situacijo normalno posredno spro�i programski proces, ki zahteva prenos podatkov. Po takem zahtevku lahko program �aka, da se vhodno-izhodna operacija zaklju�i (sinhrona vhodno-izhodna operacija), ali pa program te�e dalje hkrati s potekom vhodno-izhodne operacije. V tem primeru potrebujemo �e primeren sistemski klic, ki omogo�i procesu, da kasneje po�aka na zaklju�ek spro�ene vhodno-izhodne operacije. Sistem mora imeti mo�nost isto�asnega sledenja ve�jemu �tevilu vhodno-izhodnih zahtevkov. Zato mora imeti tabelo z opisom stanja posameznih naprav (periferna statusna tabela, device status table). V taki tabeli so normalni podani: tip posamezne naprave, njeni naslovi, stanje).

Ko pride do prekinitvenega zahtevka, operacijski sistem ugotovi, katera naprava ga je povzro�ila, naslovi ustrezni element periferne statusne tabele in ustrezno popravi njegove podatke (status, �tevce podatkov ipd).
 
 
Ko je vhodno-izhodna operacija zaklju�ena, pogleda sistem, kateri proces je �akal na njen zaklju�ek, in ga sprosti za nadaljevanje. Tak na�in vhodno-izhodnih operacij je asinhron

Obi�ajno so vse vhodno-izhodne in�trukcije za��itene in normalnemu uporabniku prepovedane. Ra�unalnik jih izvaja le, �e je v takoimenovanem sistemskem stanju (kernel mode, system mode).

S stali��a operacijskega sistema mora biti zagotovljena �im ve�ja neodvisnost od posebnosti posameznih perifernih naprav oziroma njihovih krmilnikov. Zato vhodno-izhodni podsistem obi�ajno sestavljajo naslednji podsklopi:

Ustrezno vmesno polje za pomnenje podatkov (pri sistemu UNIX so to bloki medpomnilnika pri diskih in drugih blokovnih napravah, c-liste pri terminalih in drugih znakovnih napravah),
Splo�en vmesnik do gonilnikov perifernih naprav,
Gonilniki (drivers) za posamezne vrste perifernih naprav.

Vsaki periferni napravi lahko ustreza poseben gonilnik, �e pa je ve� naprav istega tipa, lahko imamo en gonilnik za vse take naprave (na primer diske). Sistem lahko podpira tudi takoimenovane programske naprave (software devices), katerim ni prirejena nobena fizi�na periferija. Tako bi lahko na primer obravnavali pomnilni�ke lokacije, ki so sicer procesu nedostopne.