Podsyst em vstupu a v ystupu PB 152 Operacn syst emy PV 062 Organizace soubor u Jan Staudek http://www..muni.cz/usr/staudek/vyuka/ Ð Û Å«Æ ±²³ µ ¹º»¼½¾ Ý Verze : jaro 2016
Osnova predn asky 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 Jan Staudek, FI MU Brno PV 062, PB 152 { 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 Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 2
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 pam eti termin al m uze pouzvat b ezn 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 Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 3
IO svet { svet velmi odlisn ych rychlost Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 4
IO svet { svet velmi odlisn ych rychlost Jan Staudek, FI MU Brno PV 062, PB 152 { 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 n ekolika bajtov e registry { napr. stavov y, rdic, vstupn a v ystupn,... sb ernice, pro prenos cten ych/zpisovan ych dat z/do periferie radic (adapter) periferie, { interface periferie na CPU (pres sb ernici) { prijm a prkazy/dat z CPU a dod av a data/indikace do CPU { d av a podnet pro generov an prerusen Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 6
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 m en kongurace zarzen, zad avaj se v ystupn data, zsk avaj se vstupn data, stav,... napr. poctac s 32bit adresovou sb ernic, s 4GB FAP: napr. poslednch 128MB adres je vyhrazeno pro porty per. zar. samostatn y IO adresov y 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 adresov an Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 8
I/O instrukce, samostatn y IO adresov y prostor IN registr-kam, registr-zdroj registr-kam: cl nacten vstupujc hodnoty registr-zdroj: obsahuje IO adresu / cslo portu vstupu OUT registr-kam, registr-zdroj registr-kam: obsahuje IO adresu / cslo portu v ystupu registr-zdroj: registr s vypisovanou hodnotou ilustrace c asti 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
Klasick a struktura poctace se jednou sb ernic Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 10
Struktura poctace se vce sb ernicemi Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 11
Techniky prov ad en I/O programovan y I/O, polling, busy-waiting vyd an instrukce { I/O command cyklick e dotazov an na stav prenosu az do zjist en jeho konce, tj. cinn e cek an, synchronn operace programovan y I/O, rzen y prerusenm vyd an instrukce { I/O command paraleln b eh s procesorem, typicky n ekolikaslabikov y 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
Z akladn koncepce ovl ad an I/O Direct Memory Access (DMA) zad an denice IO operace v ymena blok u mezi FAP a I/O zarzenm (,,kraden cykl u pameti") prerusen generovan e 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 N ahrada programovan eho I/O pri velk ych presunech dat pozaduje se speci aln DMA radic pri prenosu dat se obch az procesor, prm y tok zarzen { pam et' 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 { mozn a alternativn resen Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 16
I/O procesor, kan al { Z akladn koncepce ovl ad an I/O analogie DMA + multiplexing vce prenos u, DMA = selektorov y kan al, I/O procesor = multiplexorov y kan al I/O poctac { samostatn e zpracov an IO (napr. ze sdlen eho disku apod.) poctace s vlastnm FAP Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 17
Techniky provad en I/O Jan Staudek, FI MU Brno PV 062, PB 152 { Podsystem vstupu a vystupu 18
Polling, vyz yv an Urcen stavu zarzen pripraven e obsazen e chybov y stav vyd an IO instrukce cinn e cek an na konec operace I/O zarzen { monoprogramov e syst emy ozn amen konce operace I/O zarzen prerusenm { multitaskingov e syst emy Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 19
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) vesm es prioritn uspor ad an nekter a prerusen nelze maskovat (v ypadek energie,... ) Prerusen se pouzv a i pro resen v yjimek chybov e stavy,... Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 20
IO cyklus rzen y 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 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 zpozd en, vystaven, rychlost prenosu, prodlevy sm er prenosu { read-write (disk), read only (CD-ROM), write only... (radic graky) Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 23
J adro a jeho I/O struktura Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 24
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 Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 25
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,... Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 26
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) Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 27
blokujc Blokujc a neblokujc I/O z hlediska procesu synchronn proces cek a na ukoncen I/O snadn e pouzit, snadn e porozum en 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) promptn e 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) obtzn ejs, slozit ejs pouzv an Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 28
I/O Subsyst em v j adru Pl anov an n ekter a I/O zarzen pozaduj razen I/O pozadavk u do front na zarzen nekter e OS se snaz o spravedlnost Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 29
I/O Subsyst em v j adru 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 Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 30
Vyrovn av an, buering Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 31
I/O Subsyst em v j adru, 2 Caching rychl a pam et' udrzujc kopii dat vzdy pouze kopii klc k dosazen vysok eho v ykonu Spooling udrzov an fronty dat urcen ych k v ypis na zarzen pokud zarzen m uze vyrizovat pozadavek po pozadavku typicky { tisk arna rezervace zarzen exkluzivita prstupu k zarzen pro proces rezervace / uvolnen { vol an syst emu ochrana proti uv aznut! Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 32
Chybov e rzen vzpamatov an se po poruse pri chyb e cten z disku, zjist en nedostupnosti zarzen, po n ahodn e z apisov e chybe,... typick e chybov e hl asen z aporn a funkcn hodnota poskytnut a vol anm syst emu udrzuje se z aznamnk o chyb ach v syst emu System error logs Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 33
Datov e struktury j adra J adro udrzuje stavovou informaci o komponent ach I/O tabulky otevren ych soubor u, st'ov ych spojen, stav u znakov ych zarzen,... mnoho slozit ych datov ych struktur sleduje vyuzv an vyrovn avacch pamet, alokaci pameti, vadn e bloky,... N ekter a j adra pouzvaj pro implementaci I/O objektov e orientovan e metody a pred av an zpr av Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 34
Struktura I/O c asti jadra UNIX Jan Staudek, FI MU Brno PV 062, PB 152 { Podsystem vstupu a vystupu 35
Filozoe proveden IO pozadavku Uvazme cten souboru z disku procesem urci zarzen uchov avajc soubor preloz jm eno na reprezentaci zarzen precti data z disku fyzicky do vyrovn avac pam eti zprstupni data volajcmu procesu vrat' rzen procesu Jan Staudek, FI MU Brno PV 062, PB 152 { Podsyst em vstupu a v ystupu 36
Z ivotn cyklus I/O po zadavku Jan Staudek, FI MU Brno PV 062, PB 152 { Podsystem vstupu a vystupu 37