Podsyst em vstupu a v ystupu PB152 Operacn systemy PV062 Organizace souboru Jan Staudek http://www. .muni.cz/usr/staudek/vyuka/ Û¡¢£¤¥¦§¨ª«¬­Æ°±²³´µ·¸¹º»¼½¾¿Ý Verze: jaro 2016 Osnova prednasky Vstup/vystup { Input/output { V/V { I/O { periferie { ... Nejrozmanitejs, nejmene systematizovana stranka OS, neexistuje jej obecne, plne konzistentn resen. 2 Hardware I/O 2 Aplikacn rozhran I/O 2 Podsystem I/O v jadru 2 Transformace pozadavku na I/O pozadavky na hardware 2 Proudy 2 Vykon Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 1 Klasi kace 2 I/O s rozhranm na lidskeho cinitele tiskarny, terminaly, displeje, klavesnice, mys, ... 2 I/O s rozhranm jine technicke zarzen disky, USB klce, detektory, radice, ... 2 Komunikacn IO komunikacn zarzen pro komunuikaci poctace s jinymi zarzenmi Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 2 IO svet { cm se lis I/O zarzen ? 2 Rychlost prenosu dat { ilustrace viz nasledujc obrazky 2 Aplikac disk pouzity pro uchovavan souboru dat pozaduje od OS funkcnost sprava souboru disk pouzity pro skladovan obrazu LAP vyzaduje funkcnost OS virtualizace pameti terminal muze pouzvat bezny uzivatel nebo administrator 2 Slozitost obsluhy rozhran poctac{periferie 2 Jednotkou prenosu poctac-periferie proud jednotlivych bytu (terminal), blok bytu (disk), ... 2 Zobrazenm (kodovanm) dat 2 Chybovost a potrebnym chybovym rzenm Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 3 IO svet { svet velmi odlisnych rychlost Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 4 IO svet { svet velmi odlisnych rychlost Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 5 I/O Hardware 2 I kdyz existuje spousta ruznych V/V zarzen, I/O devices, periferi liscch se vlastnostmi a zpusoby rzen, idealn OS umoznuje jak jejich individualn detailn ovladan tak realizaci univerzalnch IO operac pres jednotne rozhran 2 Spolecne rysy z hlediska architektury port, prpojne adresovatelne msto periferie { typicky nekolika bajtove registry { napr. stavovy, rdic, vstupn a vystupn, ... sbernice, pro prenos ctenych/zpisovanych dat z/do periferie radic (adapter) periferie, { interface periferie na CPU (pres sbernici) { prijma prkazy/dat z CPU a dodava data/indikace do CPU { dava podnet pro generovan prerusen Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 6 I/O instrukce 2 I/O instrukce strojoveho jazyka cten/zapis dat z/do portu, via datove registry zadavan prkazu pro IO zarzen, via rdic registry odebran stavovych informac od IO zarzen, via stavove/indikacn registry 2 dve genericke formy I/O instrukc, dve formy adresovan I/O zarzen I/O adresy jsou mapovane do adres FAP, pouzit v instrukcch presunu (LOAD, STORE, MOVE, ...), zapisem a ctenm z jistych adres se men kon gurace zarzen, zadavaj se vystupn data, zskavaj se vstupn data, stav, ... napr. poctac s 32bit adresovou sbernic, s 4GB FAP: napr. poslednch 128MB adres je vyhrazeno pro porty per. zar. samostatny IO adresovy prostor, pouzit v I/O instrukcch (IN, OUT) Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 7 IO adresovan Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 8 I/O instrukce, samostatny IO adresovy prostor 2 IN registr-kam, registr-zdroj registr-kam: cl nacten vstupujc hodnoty registr-zdroj: obsahuje IO adresu / cslo portu vstupu 2 OUT registr-kam, registr-zdroj registr-kam: obsahuje IO adresu / cslo portu vystupu registr-zdroj: registr s vypisovanou hodnotou 2 ilustrace casti IO address range (hexadecimal) pro PC: 000-00F: DMA Controller 020-021: Interrupt Controller 040-043: Timer 200-20F: Game Controller 2F8-2FF: Serial port (secondary) 320-32F: Hard disk Controller 378-37F: Parallel port 3D0-3DF: Graphics Controller 3F0-3F7: Diskette drive Controller 3F8-3FF: Serial port (primary) Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 9 Klasicka struktura poctace se jednou sbernic Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 10 Struktura poctace se vce sbernicemi Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 11 Techniky provaden I/O 2 programovany I/O, polling, busy-waiting vydan instrukce { I/O command cyklicke dotazovan na stav prenosu az do zjisten jeho konce, tj. cinne cekan, synchronn operace 2 programovany I/O, rzeny prerusenm vydan instrukce { I/O command paraleln beh s procesorem, typicky nekolikaslabikovy prenos I/O modul (radic) oznamuje konec prenosu prerusenm, asynchronn operace Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 12 Zakladn koncepce ovladan I/O 2 Direct Memory Access (DMA) zadan de nice IO operace vymena bloku mezi FAP a I/O zarzenm (,,kraden cyklu pameti") prerusen generovane DMA po ukoncen prenosu bloku Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 13 Direct Memory Access, DMA Nahrada programovaneho I/O pri velkych presunech dat pozaduje se specialn DMA radic pri prenosu dat se obchaz procesor, prmy tok zarzen { pamet' Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 14 Direct Memory Access, DMA Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 15 Direct Memory Access { mozna alternativn resen Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 16 Zakladn koncepce ovladan I/O 2 I/O procesor, kanal { analogie DMA + multiplexing vce prenosu, DMA = selektorovy kanal, I/O procesor = multiplexorovy kanal 2 I/O poctac { samostatne zpracovan IO (napr. ze sdleneho disku apod.) poctace s vlastnm FAP Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 17 Techniky provaden I/O Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 18 Polling, vyzyvan 2 Urcen stavu zarzen pripravene obsazene chybovy stav 2 vydan IO instrukce 2 cinne cekan na konec operace I/O zarzen { monoprogramove systemy 2 oznamen konce operace I/O zarzen prerusenm { multitaskingove systemy Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 19 Prerusen 2 Prerusen obsluhuje spravce prerusen 2 Maskovanm lze nektera prerusen ignorovat nebo oddalit jejich obsluhu 2 Potrebny spravce prerusen se vybra prerusovacm vektorem dvojice {schranka pro uschovu ctace instrukc, vstupn bod spravce} na pevnem mste FAP (typicky na zacatku) vesmes prioritn usporadan nektera prerusen nelze maskovat (vypadek energie, ...) 2 Prerusen se pouzva i pro resen vyjimek chybove stavy, ... Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 20 IO cyklus rzeny prerusenm, role radice prerusen Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 21 Vektor prerusen procesoru Intel Pentium Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 22 Aplikacn rozhran I/O 2 v generickych trdach skryva chovan konkretnch zarzen volan systemu (I/O) 2 vrstva ovladacu ukryva rozdlnost chovan I/O radicu pro jadro 2 Mnoho odlisnych typu zarzen mod prenosu dat { znakove (terminal) / blokove (disk) metoda prstupu { sekvencn (modem) / prmy (CD-ROM) sdlene / dedikovane { klavesnice / paska (disk) rychlost { rotacn zpozden, vystaven, rychlost prenosu, prodlevy smer prenosu { read-write (disk), read only (CD-ROM), write only (radic gra ky) ... Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 23 Jadro a jeho I/O struktura Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 24 Blokova a znakova zarzen 2 blokova { typicky disk Prkazy: read, write, seek (blok) Na urovni bazoveho I/O nebo na urovni prstupu k souborum mozny prstup formou Memory-Mapped File 2 znakova { klavesnice, mys, seriovy port, ... prkazy: get, put (character) nad nimi knihovn podprogramy pro moznost radkove editace Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 25 St'ova zarzen 2 na rozhran se chovaj jinak nez blokova ci znakova zarzen 2 OS typu Unix / Windows obsahuj rozhran socket separace st'ovych protokolu od st'ovych operac funkcionalita klient-server 2 Mnoho ruznych forem modelu pipes, streams, queues, mailboxes, ... Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 26 Hodiny a casovace 2 poskytuj hodnotu casu 2 mer uplynuly cas 2 stopky 2 programovatelny casovac je pouzitelny pro casovou synchronizaci formou periodickych prerusen 2 ryz, syrove, bazove programovan na urovni ioctl (UNIX) Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 27 Blokujc a neblokujc I/O 2 blokujc z hlediska procesu synchronn proces ceka na ukoncen I/O snadne pouzit, snadne porozumen mnohdy nevyhovujc 2 neblokujc rzen se procesu vrac bez zbytecneho prodlen po vydan volan systemu uzivatelske rozhran, vyrovnavany I/O (bu ered I/O) implementovano casto pomoc sledu (vlaken) promptne vrac pocet nactenych ci vypsanych znaku 2 asynchronn proces bez soubezne s I/O konec I/O je procesu hlasen signaly (prerusen) obtznejs, slozitejs pouzvan Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 28 I/O Subsystem v jadru 2 Planovan nektera I/O zarzen pozaduj razen I/O pozadavku do front na zarzen nektere OS se snaz o spravedlnost Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 29 I/O Subsystem v jadru 2 vyrovnavan, bu ering ukladan dat v pameti v dobe prenosu k/e zarzen res se rozdlnost rychlost res se rozdlnost datovych jednotek Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 30 Vyrovnavan, bu ering Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 31 I/O Subsystem v jadru, 2 2 Caching rychla pamet' udrzujc kopii dat vzdy pouze kopii klc k dosazen vysokeho vykonu 2 Spooling udrzovan fronty dat urcenych k vypis na zarzen pokud zarzen muze vyrizovat pozadavek po pozadavku typicky { tiskarna 2 rezervace zarzen exkluzivita prstupu k zarzen pro proces rezervace / uvolnen { volan systemu ochrana proti uvaznut ! Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 32 Chybove rzen 2 vzpamatovan se po poruse pri chybe cten z disku, zjisten nedostupnosti zarzen, po nahodne zapisove chybe, ... 2 typicke chybove hlasen zaporna funkcn hodnota poskytnuta volanm systemu 2 udrzuje se zaznamnk o chybach v systemu System error logs Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 33 Datove struktury jadra 2 Jadro udrzuje stavovou informaci o komponentach I/O tabulky otevrenych souboru, st'ovych spojen, stavu znakovych zarzen, ... 2 mnoho slozitych datovych struktur sleduje vyuzvan vyrovnavacch pamet, alokaci pameti, vadne bloky, ... 2 Nektera jadra pouzvaj pro implementaci I/O objektove orientovane metody a predavan zprav Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 34 Struktura I/O casti jadra UNIX Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 35 Filozo e proveden IO pozadavku 2 Uvazme cten souboru z disku procesem urci zarzen uchovavajc soubor preloz jmeno na reprezentaci zarzen precti data z disku fyzicky do vyrovnavac pameti zprstupni data volajcmu procesu vrat' rzen procesu Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 36 Zivotn cyklus I/O pozadavku Jan Staudek, FI MU Brno | PV 062, PB 152 { Podsyst em vstupu a v ystupu 37