PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 1 I/O systém Vnější paměti PB 169 Počítačové sítě a operační systémy PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 2 Hardware ¢HW pro I/O je značně rozmanitý ¢Existují však určité běžně používané prvky lport lsběrnice (bus) lřadič (host adapter, controller) ¢I/O zařízení jsou řízeny I/O instrukcemi (IN, OUT) ¢Adresy I/O zařízení luváděné přímo v I/O instrukcích (např. IN AL, DX : DX port, AL získaný bajt) lI/O se mapuje na přístup k paměti (např. grafická karta, videopaměť) ¢Základní způsoby ovládání I/O lpolling, programované I/O operace •aktivní čekání na konec operace lpřerušení lDMA PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 3 Rozmístění I/O portů v PC PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 4 Techniky provádění I/O ¢Programovaný I/O (busy-waiting) lopakovaně se ptám na stav zařízení •připraven •pracuje •chyba ¢I/O řízený přerušením lzahájení I/O pomocí I/O příkazu lparalelní běh I/O s během procesoru lI/O modul oznamuje přerušením konec přenosu ¢Direct Memory Access (DMA) lkopírování bloků mezi pamětí a I/O zařízením na principu kradení cyklů paměti lpřerušení po přenosu bloku (indikace konce) PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 5 Přerušení ¢Přerušení obsluhuje ovladač přerušení (kód OS) ¢Maskováním lze některá přerušení ignorovat nebo oddálit jejich obsluhu ¢Patřičný ovladač přerušení se vybírá přerušovacím vektorem lněkterá přerušení nelze maskovat lpřerušení mohou být uspořádána podle priorit ¢Přerušení se používá i pro řešení výjimek (nejsou asynchronní) PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 6 DMA ¢Přímý přístup do paměti (Direct Memory Access - DMA) lnahrazuje programovaný I/O při velkých přesunech dat lvyžaduje speciální DMA řadič lpři přenosu dat se obchází procesor, přístup do paměti zajišťuje přímo DMA řadič lprocesor a DMA soutěží o přístup k paměti PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 7 DMA: příklad PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 8 Aplikační rozhraní I/O ¢Jádro OS se snaží skrýt rozdíly mezi I/O zařízeními a programátorům poskytuje jednotné rozhraní ¢Dále vrstva ovladačů ukrývá rozdílnost chování I/O řadičů i před některými částmi jádra ¢Některé vlastnosti I/O zařízení lmód přenosu dat: znakové (terminál) / blokové (disk) lzpůsob přístupu: sekvenční (modem) / přímý (disk) lsdílené/dedikované: klávesnice / páska lrychlost přenosu: vystavení, přenos, ... lread-write, read only, write only PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 9 Bloková a znaková zařízení ¢Bloková zařízení – typicky disk lpříkazy: read, write, seek llogický způsob přístupu: obecný I/O nebo souborový systém lmožný přístup formou souboru mapovaného do paměti ¢Znaková – klávesnice, myš, sériový port lpříkazy: get, put lnad nimi knihovní podprogramy pro další možnosti (např. řádková editace) PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 10 Síťová zařízení ¢Přístup k nim se značně liší jak od znakových, tak od blokových zařízení lproto mívají samostatné rozhraní OS ¢Unix i Windows obsahující rozhraní nazývané „sockets“ lseparují síťové protokoly od síťových operací lpřístup jako k souborům (včetně funkce select) ¢Existuje celá řada přístupů k síťovým službám l Pipes (roury), FIFOs, streams, queues, mailboxes PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 11 Blokující a neblokující I/O ¢Blokující lz hlediska procesu synchronní lproces čeká na ukončení I/O lsnadné použití (programovaní), snadné porozumění (po provedení operace je hotovo to co jsem požadoval) lněkdy však není dostačující (z důvodu efektivity) ¢Neblokující lřízení se procesu vrací co nejdříve po zadání požadavku lvhodné pro uživatelské rozhraní, bufferovaný I/O lbývá implementováno pomocí vláken lokamžitě vrací počet načtených či zapsaných znaků ¢Asynchronní lproces běží souběžně s I/O lkonec I/O je procesu hlášen signály lobtížné na programovaní, složité používání, ale v případě vhodně promyšleného programu velice efektivní PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 12 I/O subsystém v jádru ¢Plánování lněkteré I/O operace požadují řazení do front na zařízení lněkteré OS se snaží o „spravedlnost“ ¢Vyrovnání (vyrovnávací paměti), buffering lukládání dat v paměti v době přenosu k/ze zařízení lřeší rozdílnost rychlosti lřeší rozdílnost velikosti datových jednotek PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 13 Příklad: Sun Enterprise 6000 PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 14 I/O Subsystém v jádru ¢Caching lrychlá paměť udržuje kopii dat lvždy pouze kopii lcaching je klíčem k dosažení vysokého výkonu ¢Spooling ludržování fronty dat určených k výpis na zařízení lpokud zařízení může vyřizovat požadavky pouze sekvenčně ltypicky tiskárna ¢Rezervace zařízení lexkluzivita přístupu k zařízení pro proces lrezervace / uvolnění – volání systému lpozor na uváznutí (deadlock) PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 15 Výkon ¢I/O je nejvýznamnějším faktorem výkonu celého systému lCPU musí provádět ovladače a programy I/O části jádra lpři přerušení se přepíná kontext lprovádí se kopírování dat lzvláště významný je síťový provoz PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 16 Příklad: Síťová aplikace PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 17 Zvyšování výkonu ¢Omezujeme počet přepnutí kontextu ¢Omezujeme zbytečné kopírování dat ¢Omezujeme počet přerušení tím, že přenášíme delší bloky ¢Využíváme všech výhod (funkcí) moderních řadičů ¢Používáme co nejvíce DMA ¢Všechny komponenty kombinujeme s cílem dosažení co nejvyšší propustnosti lCPU, paměť, sběrnice, I/O zařízení PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 18 Paměťová hierarchie ¢Primární paměti lnejrychlejší lenergeticky závislé lCache, hlavní (operační) paměť ¢Sekundární paměti lstředně rychlé lenergeticky nezávislé lTaké nazývané „on-line storage“ lflash disky, magnetické disky ¢Terciální paměti llevná typicky vyměnitelná média lpomalé lenergeticky nezávislé ltaké nazývané „off-line storage“ lfloppy disky, magnetické pásky, optické disky PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 19 Magnetické disky PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 20 Struktura disku ¢Diskové mechanismy se adresují jako velká 1-dimensionální pole logických bloků llogické bloky jsou nejmenší jednotkou přenosu dat ¢1-dimensionální pole logických bloků je zobrazováno do sektorů disku sekvenčně lsektor 0 •první sektor na první stopě vnějšího cylindru lzobrazování pokračuje po této stopě, l potom po ostatních stopách tohoto cylindru, l a potom po cylindrech směrem ke středu PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 21 Plánování disku ¢OS je odpovědný za efektivní používání hardware lpro disky: co nejrychlejší přístup a co největší šířka pásma ¢Doba přístupu (access time) je dána: ldobou vystavení (seek time) – na cylindr se stopou s adresovaným sektorem ldobou rotačního zpoždění – dodatečná doba do průchodu adresovaného sektoru pod čtecí/zápisovou hlavou ¢Minimalizace doby vystavení ldoba vystavení » vystavovací vzdálenosti lřeší plánování činnosti disku ¢Rotační zpoždění lshora omezeno konstantou ¢Šířka pásma lpočet přenesených bytů / doba od zadání skupiny požadavků do jejich ukončení lpřevzatý pojem z telekomunikací PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 22 Plánování disku ¢Existuje celá řada algoritmů pro plánování přístupu na disk. ¢Příklad: vzorová fronta požadavků na přístup k disku (máme cylindry 0-199). ¢ 98, 183, 37, 122, 14, 124, 65, 67 ¢ ¢ Hlavička disku vystavena na pozici 53 PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 23 FCFS ¢Celkem přesun o 640 cylindrů PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 24 SSTF ¢Z fronty požadavků vybírá ten požadavek, který vyžaduje minimální dobu vystavení od současné pozice hlavičky ¢SSTF (shortest seek time first) algoritmus je variantou algoritmu SJF (shortest job first); může způsobit stárnutí požadavků. ¢Náš příklad vyžaduje přesun o 236 cylindrů ¢ PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 25 SSTF PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 26 SCAN ¢Hlavička disku začíná na jedné straně disku a přesunuje se při splňování požadavků ke druhé straně disku. Pak se vrací zpět a opět plní požadavky. ¢Někdy nazývané algoritmus typu výtah. ¢Náš příklad vyžaduje přesun o 208 cylindrů. ¢ PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 27 SCAN PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 28 C-SCAN ¢Poskytuje jednotnější čekací dobu než SCAN ¢Hlavička se posouvá z jednoho konce disku na druhý a zpracovává požadavky. Potom se vrací zpět bez vyřizování požadavků a opět začíná vyřizovat požadavky z prvního konce. ¢Cylindry považuje za kruhový seznam, který za posledním cylindrem pokračuje opět prvním cylindrem. ¢ PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 29 C-SCAN PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 30 C-LOOK ¢Obdoba C-SCAN, ale hlavička jen potud do kraje, pokud existují požadavky. ¢Pak se vrací zpět PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 31 C-LOOK PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 32 Výběr algoritmu ¢SSTF je přirozený, má přirozené chápání ¢SCAN a C-SCAN jsou vhodnější pro těžkou zátěž disku ¢Výkon závisí na počtu a typech požadavků ¢Požadavky na disk mohou být ovlivněny metodami organizace souborů v souborovém systému ¢Plánovací algoritmus by měl být napsán jako samostatný modul, aby plánovací algoritmus OS bylo možné zaměňovat ¢Častá implicitní volba bývá SSTF nebo LOOK PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 33 Moderní HW ¢U moderních disků nemusí být známé mapování logických bloků na fyzické adresy ¢Disku předáme skupinu požadavků a disk si pořadí optimalizuje sám ¢OS přesto může mít zájem na vlastním řazení požadavků lpriorita I/O operací z důvodu výpadků stránek lPořadí operací zápisu dat a metadat souborového systému PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 34 Technologie RAID ¢RAID: Redundant Arrays of Independent (Inexpensive) Disks lorganizace disků řízená tak, že poskytuje objem jednoho disku •s velkou kapacitou a rychlostí díky tomu, že mnoho disků pracuje paralelně •s velkou spolehlivostí, data se uchovávají redundantně, lze je obnovit i po poruše některého z disků ¢Pravděpodobnost, že některý disk z množiny N disků selže je mnohem vyšší, než pravděpodobnost, že selže jediný disk lN = 100 disků, každý má MTTF = 100 000 hodin (cca 11 let), celý systém bude mít MTTF = 1000 hodin (cca 41 dní) ltechniky na bázi redundance chránící před ztrátou dat jsou pro systémy s velkým počtem komponent (disků) kritické ¢Původní záměr llevná alternativa nahrazující velké drahé disky l„I“ je interpretováno jako „independent“ PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 35 RAID: zvýšení spolehlivosti ¢Redundance lnadbytečnost, doplňková informace použitelná pro obnovu informace po poruše (disku) ¢Zrcadlení (stínování), Mirroring (shadowing) lkaždý disk je duplikován, 1 logický disk je tvořen 2 fyzickými disky lkaždý zápis se provede na obou discích, čte se z jednoho disku ljestliže se jeden disk porouchá, data jsou k dispozici na druhém disku •ke ztrátě dat dojde při výpadku obou disků, když zrcadlový disk selže dříve, než se systém opraví lprůměrná doba do ztráty dat závisí na průměrné době do poruchy a průměrné doby opravy •Např. MTTF = 100 000 hodin, průměrná doba opravy 10 hodin, dává u zrcadlené dvojice disků průměrnou dobu ztráty dat 500*106 hodin (čili 57 000 let), když budeme ignorovat požáry apod. PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 36 RAID: zvýšení výkonu ¢Dva hlavní cíle paralelismu v diskových systémech lzvýšení propustnosti vyvážením zátěže malými přístupy lparalelizace velkých přístupů s cílem zkrácení doby odpovědi ¢Zvýšení přenosové rychlosti paralelním zápisem do více disků (dělení, striping) lbit-level striping •dělení bitů každého bytu mezi samostatné disky •v poli 8 disků se zapisuje bit i každého bytu na disk i •čtení dat probíhá 8x rychleji než z jednoho disku •vystavení je delší než v případě jednoho disku •dnes se bit-level striping de facto už nepoužívá lblok-level striping •systém s n disky, blok souboru i se zapisuje na disk (i mod n) + 1 •požadavky na různé bloky se mohou realizovat paralelně, jestliže bloky leží na různých discích •požadavek na dlouhou posloupnost bloků může použít všechny disky paralelně PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 37 Úrovně RAID, přehled ¢RAID Level 0: Žádná redundance, jen souběžnost ¢RAID Level 1: Spolehlivost dosažená zrcadlením disků ¢RAID Level 2: Hamming code error correction ¢RAID Level 3: 1 kontrolní disk na skupinu, dělení bitů ¢RAID Level 4: Nezávislé operace read/write, dělení bloků ¢RAID Level 5: Data/parity přes všechny disky (více souběžný přístup) ¢RAID Level 6: Odolnost při více než jedné poruše disku PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 38 API ¢Většina OS pracuje s vyměnitelnými disky (např. disketami, ZIP disky) stejně jako s pevnými disky lnový svazek je formátován a na disku se generuje prázdný souborový systém ¢Pásky ljsou prezentované jako „holé“ (raw) paměťové médium laplikace na páskách nemají k dispozici souborový systém lotevírají celý páskový mechanismus jako zařízení lpáskové mechanismy se vesměs nesdílejí, jsou dedikované konkrétní aplikaci lOS nepodporují na páskách souborové systémy, aplikace musí samy řešit jak používat bloky dat •pásku pak obvykle může používat pouze aplikace, pro kterou byla páska vytvářena (protože jako jediná zná strukturu dat na pásce) PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 39 Cena MB RAM (1981 – 2004) Dnes: asi $0.025/MB (4GB) PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 40 Cena MB pevných disků (1981 – 2004) Dnes: asi 0,000125$/MB (1TB) PB 169 Počítačové sítě a operační systémy ‹#› PB 169 Počítačové sítě a operační systémy 41 Cena MB pásek (1981 -2004) Dnes: asi 0,000125$/MB (0.8TB)