Vhodno-izhodni podsistem

Vhodno-izhodni podsistem ima številne naloge.

Razvrščanje (Scheduling)

Razvrščanje zahtevkov v vrste v/i naprav je ena pomembnejših nalog operacijskega sistema. V večopravilnih operacijskih sistemih ima operacijski sistem vedno opravka z več zahtevki različnih procesov. Tipični primer je zahteva po podatkih na diskovju.

V primeru dostopa do diskovja lahko operacijski sistem z namenom čim boljšega izkoristka značilnosti v/i naprave razporedi zahtevke v drugačnem vrstnem redu od dospetja. Npr. da imamo tri zahtevke: najprej zahtevek po podatku na zadnji sledi, nato pa zahtevek po podatku na prvi sledi. Ker imamo npr. slučaj, ko je diskovna glava pravkar pozicionirana na prvi sledi, se bo logično najprej serviral podatek iz prve sledi, šele nato bo glava potovala na zadnjo sled. To je le en primer, ki nakazuje, da pri razvrščanju še zdaleč ne gre za uporabo enostavnega FIFO algoritma.

Predpomnenje (Caching)

Ko gre za komunikacijo med dvema napravama in je prva naprava (npr. procesor), ki podatke zahteva, veliko hitrejša od druge (v/i naprava) lahko čakanje na podatke za prvo napravo predstavlja problem (slaba izkoriščenost CPE). Rešitev predstavlja predpomnenje. Pri predpomnenju se podatki, ki jih CPE zahteva, prenesejo najprej v (veliko hitrejši) glavni pomnilnik, hkrati se predvideva, da bo procesor v prihodnje zahteval tudi druge podatke, zato se jih predpomni (prenese v hitrejšo pomnilno napravo). Tako se procesor do zadnjega lahko ukvarja z drugimi procesi, ko so podatki na voljo, pa jih na enkrat obdela. S tem dosežemo veliko boljšo izkoriščenost procesorja in s tem splošno boljšo odzivnost sistema. Načeloma naprava do podatkov v predpomnilniku dostopa večkrat.

Medpomnenje (Buffering)

Podobno kot pri predpomnenju gre tudi pri medpomnenju za hrambo podatkov med prenosom v določenem predelu pomnilnika. Med medpomnenjem in predpomnenjem je razlika v tem, da se pri predpomnenju podatki prenašajo v pomnilnik še preden jih cpe oziroma hitrejša naprava zahteva. Pri medpomnenju pa se podatki hranijo samo zaradi razlik v hitrosti delovanja. Tipčno opravilo medpomnenja imamo npr. pri prenašanju podatkov iz omrežja v računalnik, kjer se pri pretvorbi iz serijske v paralelno obliko komuniciranja podatki medpomnijo - govora je torej o semantiki (pomenu). Pri medpomenju gre torej za enkraten dostop do podatkov zaradi uporabe ali pretvorbe.

Spooling

Spooling je kratica, ki označuje simultaneous peripheral operations on-line. Gre torej za avtomatizacijo delovanja zunanjih naprav. Spooling označuje hranjenje opravil v medpomnilniku, posebnem delu pomnilnika ali na disku, kjer lahko naprava, ko je pripravljena dostopa do njih. Spooling je uporaben, saj lahko različno hitre naprave po želji dostopajo do opravil, ki jih morajo opraviti. Medpomnilnik deluje kot čakalnica za podatke, ki potujejo do počasnejših naprav.

Tipični primer podsistema, ki uporablja spooling je tiskanje. Ko različni procesi (iz več ali samo enega računalnika) tiskajo na isti tiskalnik, postavi operacijsi sistem tiskalna opravila v čakalno vrsto (spooler), kjer čakajo da pridejo na vrsto za tiskanje.

Rezervacija naprave (Device reservation)

Procesi lahko včasih določeno napravo zahtevajo samo zase, zahtevajo torej izključni dostop do naprave. V večini primerov zaradi tega ne prihaja do problemov. Lahko pa se zgodi, da več procesov zahteva izključujoč dostop do več naprav. To lahko privede do različnih situacij tudi do t.i. smrtnega objema, kjer proces dobi eno napravo zahteva drugo, le-to pa ima nek drug, ki zahteva prvo...