Osnova predn asky Podsyst em vstupu a v ystupu PB 15 Operacn syst emy PV 06 Organizace soubor u Jan Staudek http://www..muni.cz/usr/staudek/vyuka/ Ð Û Å«Æ ±²³ µ ¹º»¼½¾ Ý Vstup/v ystup { Input/output { V/V { I/O { perif erie {... Nejrozmanit ejs, nejm en e systematizovan a str anka OS, neexistuje jej obecn e, pln e konzistentn resen. Hardware I/O Aplikacn rozhran I/O Podsyst em I/O v j adru Transformace pozadavku na I/O pozadavky na hardware Proudy V ykon Verze : jaro 016 PV 06, PB 15 { Podsyst em vstupu a v ystupu 1 Klasikace I/O s rozhranm na lidsk eho cinitele tisk arny, termin aly, displeje, kl avesnice, mys,... I/O s rozhranm jin e technick e zarzen disky, USB klce, detektory, radice,... Komunikacn IO komunikacn zarzen pro komunuikaci poctace s jin ymi zarzenmi IO svet { cm se lis I/O zarzen? Rychlost prenosu dat { ilustrace viz n asledujc obr azky Aplikac disk pouzit y pro uchov av an soubor u dat pozaduje od OS funkcnost spr ava soubor u disk pouzit y pro skladov an obraz u LAP vyzaduje funkcnost OS virtualizace pameti termin al m uze pouzvat bezn y uzivatel nebo administr ator Slozitost obsluhy rozhran poctac{periferie Jednotkou prenosu poctac-periferie proud jednotliv ych byt u (termin al), blok byt u (disk),... Zobrazenm (k odov anm) dat Chybovost a potrebn ym chybov ym rzenm PV 06, PB 15 { Podsyst em vstupu a v ystupu PV 06, PB 15 { Podsyst em vstupu a v ystupu 3
IO svet { svet velmi odlisn ych rychlost IO svet { svet velmi odlisn ych rychlost PV 06, PB 15 { Podsyst em vstupu a v ystupu 4 PV 06, PB 15 { Podsyst em vstupu a v ystupu 5 I/O Hardware I kdyz existuje spousta r uzn ych V/V zarzen, I/O devices, periferi liscch se vlastnostmi a zp usoby rzen, ide aln OS umoz nuje jak jejich individu aln detailn ovl ad an tak realizaci univerz alnch IO operac pres jednotn e rozhran Spolecn e rysy z hlediska architektury port, prpojn e adresovateln e msto periferie { typicky nekolika bajtov e registry { napr. stavov y, rdic, vstupn a v ystupn,... sbernice, pro prenos cten ych/zpisovan ych dat z/do periferie radic (adapter) periferie, { interface periferie na CPU (pres sbernici) { prijm a prkazy/dat z CPU a dod av a data/indikace do CPU { d av a podnet pro generov an prerusen I/O instrukce I/O instrukce strojov eho jazyka cten/z apis dat z/do portu, via datov e registry zad av an prkaz u pro IO zarzen, via rdic registry odebr an stavov ych informac od IO zarzen, via stavov e/indikacn registry dv e generick e formy I/O instrukc, dv e formy adresov an I/O zarzen I/O adresy jsou mapovan e do adres FAP, pouzit v instrukcch presunu (LOAD, STORE, MOVE,... ), z apisem a ctenm z jist ych adres se men kongurace zarzen, zad avaj se v ystupn data, zsk avaj se vstupn data, stav,... napr. poctac s 3bit adresovou sbernic, s 4GB FAP: napr. poslednch 18MB adres je vyhrazeno pro porty per. zar. samostatn y IO adresov y prostor, pouzit v I/O instrukcch (IN, OUT) PV 06, PB 15 { Podsyst em vstupu a v ystupu 6 PV 06, PB 15 { Podsyst em vstupu a v ystupu 7
I/O instrukce, samostatny IO adresovy prostor IO adresovan IN registr-kam, registr-zdroj registr-kam: c l na cten vstupuj c hodnoty registr-zdroj: obsahuje IO adresu / c slo portu vstupu OUT registr-kam, registr-zdroj registr-kam: obsahuje IO adresu / c slo portu vystupu registr-zdroj: registr s vypisovanou hodnotou PV 06, PB 15 { Podsystem 8 Klasicka struktura po c ta ce se jednou sb ernic PV 06, PB 15 { Podsystem ilustrace c asti IO address range (hexadecimal) pro PC: 000-00F: DMA Controller 00-01: Interrupt Controller 040-043: Timer 00-0F: Game Controller F8-FF: Serial port (secondary) 30-3F: Hard disk Controller 378-37F: Parallel port 3D0-3DF: Graphics Controller 3F0-3F7: Diskette drive Controller 3F8-3FF: Serial port (primary) PV 06, PB 15 { Podsystem 9 Struktura po c ta ce se v ce sb ernicemi 10 PV 06, PB 15 { Podsystem 11
Techniky provad en I/O Zakladn koncepce ovlad an I/O programovany I/O, polling, busy-waiting X vydan instrukce { I/O command X cyklicke dotazovan na stav p renosu a z do zji st en jeho konce, X zadan de nice IO operace X vym ena bloku mezi FAP a I/O za r zen m (,,kraden cyklu pam eti") X p reru sen generovane DMA po ukon cen p renosu bloku tj. c inne c ekan, synchronn operace Direct Memory Access (DMA) programovany I/O, r zeny p reru sen m X vydan instrukce { I/O command X paraleln b eh s procesorem, typicky n ekolikaslabikovy p renos X I/O modul ( radi c) oznamuje konec p renosu p reru sen m, asynchronn operace PV 06, PB 15 { Podsystem 1 Direct Memory Access, DMA PV 06, PB 15 { Podsystem 13 Direct Memory Access, DMA X Nahrada programovaneho I/O p ri velkych p resunech dat X po zaduje se specialn DMA r adi c X p ri p renosu dat se obchaz procesor, p r my tok za r zen { pam et' PV 06, PB 15 { Podsystem 14 PV 06, PB 15 { Podsystem 15
Direct Memory Access { mo zna alternativn r e sen Zakladn koncepce ovlad an I/O I/O procesor, kanal { analogie DMA + multiplexing v ce p renosu, DMA = selektorovy kanal, I/O procesor = multiplexorovy kanal I/O po c ta c { samostatne zpracovan IO (nap r. ze sd leneho disku apod.) po c ta ce s vlastn m FAP PV 06, PB 15 { Podsystem 16 Techniky provad en I/O PV 06, PB 15 { Podsystem 17 Polling, vyzyv an Ur cen stavu za r zen X p ripravene X obsazene X chybovy stav PV 06, PB 15 { Podsystem 18 vydan IO instrukce c inne c ekan na konec operace I/O za r zen { monoprogramove systemy oznamen konce operace I/O za r zen p reru sen m { multitaskingove systemy PV 06, PB 15 { Podsystem 19
Prerusen IO cyklus rzen y prerusenm, role radice prerusen Prerusen obsluhuje spr avce prerusen Maskov anm lze n ekter a prerusen ignorovat nebo odd alit jejich obsluhu Potrebn y spr avce prerusen se vybr a prerusovacm vektorem dvojice {schr anka pro uschovu ctace instrukc, vstupn bod spr avce} na pevn em mste FAP (typicky na zac atku) vesmes prioritn uspor ad an nekter a prerusen nelze maskovat (v ypadek energie,... ) Prerusen se pouzv a i pro resen v yjimek chybov e stavy,... PV 06, PB 15 { Podsyst em vstupu a v ystupu 0 PV 06, PB 15 { Podsyst em vstupu a v ystupu 1 Vektor prerusen procesoru Intel Pentium Aplikacn rozhran I/O v generick ych trd ach skr yv a chov an konkr etnch zarzen vol an syst emu (I/O) vrstva ovladac u ukr yv a rozdlnost chov an I/O radic u pro j adro Mnoho odlisn ych typ u zarzen m od prenosu dat { znakov e (termin al) / blokov e (disk) metoda prstupu { sekvencn (modem) / prm y (CD-ROM) sdlen e / dedikovan e { kl avesnice / p aska (disk) rychlost { rotacn zpozden, vystaven, rychlost prenosu, prodlevy smer prenosu { read-write (disk), read only (CD-ROM), write only... (radic graky) PV 06, PB 15 { Podsyst em vstupu a v ystupu PV 06, PB 15 { Podsyst em vstupu a v ystupu 3
J adro a jeho I/O struktura Blokov a a znakov a zarzen blokov a { typicky disk Prkazy: read, write, seek (blok) Na urovni b azov eho I/O nebo na urovni prstupu k soubor um mozn y prstup formou Memory-Mapped File znakov a { kl avesnice, mys, s eriov y port,... prkazy: get, put (character) nad nimi knihovn podprogramy pro moznost r adkov e editace PV 06, PB 15 { Podsyst em vstupu a v ystupu 4 PV 06, PB 15 { Podsyst em vstupu a v ystupu 5 St'ov a zarzen na rozhran se chovaj jinak nez blokov a ci znakov a zarzen OS typu Unix / Windows obsahuj rozhran socket separace st'ov ych protokol u od st'ov ych operac funkcionalita klient-server Mnoho r uzn ych forem model u pipes, streams, queues, mailboxes,... poskytuj hodnotu casu m er uplynul y cas stopky Hodiny a casovace programovateln y casovac je pouziteln y pro casovou synchronizaci formou periodick ych prerusen ryz, syrov e, b azov e programov an na urovni ioctl (UNIX) PV 06, PB 15 { Podsyst em vstupu a v ystupu 6 PV 06, PB 15 { Podsyst em vstupu a v ystupu 7
blokujc Blokujc a neblokujc I/O z hlediska procesu synchronn proces cek a na ukoncen I/O snadn e pouzit, snadn e porozumen mnohdy nevyhovujc neblokujc rzen se procesu vrac bez zbytecn eho prodlen po vyd an vol an syst emu uzivatelsk e rozhran, vyrovn avan y I/O (buered I/O) implementov ano casto pomoc sled u (vl aken) promptne vrac pocet nacten ych ci vypsan ych znak u asynchronn proces bez soubezne s I/O konec I/O je procesu hl asen sign aly (prerusen) obtznejs, slozitejs pouzv an I/O Subsyst em v j adru Pl anov an nekter a I/O zarzen pozaduj razen I/O pozadavk u do front na zarzen nekter e OS se snaz o spravedlnost PV 06, PB 15 { Podsyst em vstupu a v ystupu 8 PV 06, PB 15 { Podsyst em vstupu a v ystupu 9 I/O Subsyst em v j adru Vyrovn av an, buering vyrovn av an, buering ukl ad an dat v pameti v dobe prenosu k/e zarzen res se rozdlnost rychlost res se rozdlnost datov ych jednotek PV 06, PB 15 { Podsyst em vstupu a v ystupu 30 PV 06, PB 15 { Podsyst em vstupu a v ystupu 31
I/O Subsystem v jadru, Chybove r zen Caching X rychla pam et' udr zuj c kopii dat X v zdy pouze kopii X kl c k dosa zen vysokeho vykonu X zaporn a funk cn hodnota poskytnuta volan m systemu Spooling X udr zovan fronty dat ur cenych k vypis na za r zen X pokud za r zen mu ze vy rizovat po zadavek po po zadavku X typicky { tiskarna vzpamatovan se po poru se p ri chyb e c ten z disku, zji st en nedostupnosti za r zen, po nahodn e zapisov e chyb e,... typicke chybove hla sen udr zuje se zaznamn k o chybach v systemu X System error logs rezervace za r zen X exkluzivita p r stupu k za r zen pro proces X rezervace / uvoln en { volan systemu X ochrana proti uvaznut! PV 06, PB 15 { Podsystem 3 Datove struktury jadra PV 06, PB 15 { Podsystem 33 Struktura I/O c asti jadra UNIX Jadro udr zuje stavovou informaci o komponentach I/O X tabulky otev renych souboru, s t'ovych spojen, stavu znakovych za r zen,... mnoho slo zitych datovych struktur sleduje vyu z van vyrovnavac ch pam et, alokaci pam eti, vadne bloky,... N ektera jadra pou z vaj pro implementaci I/O objektov e orientovane metody a p redav an zprav PV 06, PB 15 { Podsystem 34 PV 06, PB 15 { Podsystem 35
Z ivotn cyklus I/O po zadavku Filozo e proveden IO po zadavku Uva zme c ten souboru z disku procesem X X X X X ur ci za r zen uchovavaj c soubor p relo z jmeno na reprezentaci za r zen p re cti data z disku fyzicky do vyrovnavac pam eti zp r stupni data volaj c mu procesu vrat' r zen procesu PV 06, PB 15 { Podsystem 36 PV 06, PB 15 { Podsystem 37