PB 169 Počítačové sítě a operační systémy1 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émy2 Hardware  HW pro I/O je značně rozmanitý  Existují však určité běžně používané prvky  port  sběrnice (bus)  řadič (host adapter, controller)  I/O zařízení jsou řízeny I/O instrukcemi (IN, OUT)  Adresy I/O zařízení  uváděné přímo v I/O instrukcích (např. IN AL, DX : DX port, AL získaný bajt)  I/O se mapuje na přístup k paměti (např. grafická karta, videopaměť)  Základní způsoby ovládání I/O  polling, programované I/O operace • aktivní čekání na konec operace  přerušení  DMA PB 169 Počítačové sítě a operační systémy3 Rozmístění I/O portů v PC PB 169 Počítačové sítě a operační systémy4 Techniky provádění I/O  Programovaný I/O (busy-waiting)  opakovaně se ptám na stav zařízení • připraven • pracuje • chyba  I/O řízený přerušením  zahájení I/O pomocí I/O příkazu  paralelní běh I/O s během procesoru  I/O modul oznamuje přerušením konec přenosu  Direct Memory Access (DMA)  kopírování bloků mezi pamětí a I/O zařízením na principu kradení cyklů paměti  přerušení po přenosu bloku (indikace konce) PB 169 Počítačové sítě a operační systémy5 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  některá přerušení nelze maskovat  př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émy6 DMA  Přímý přístup do paměti (Direct Memory Access - DMA)  nahrazuje programovaný I/O při velkých přesunech dat  vyžaduje speciální DMA řadič  při přenosu dat se obchází procesor, přístup do paměti zajišťuje přímo DMA řadič  procesor a DMA soutěží o přístup k paměti PB 169 Počítačové sítě a operační systémy7 DMA: příklad PB 169 Počítačové sítě a operační systémy8 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í  mód přenosu dat: znakové (terminál) / blokové (disk)  způsob přístupu: sekvenční (modem) / přímý (disk)  sdílené/dedikované: klávesnice / páska  rychlost přenosu: vystavení, přenos, ...  read-write, read only, write only PB 169 Počítačové sítě a operační systémy9 Bloková a znaková zařízení  Bloková zařízení – typicky disk  příkazy: read, write, seek  logický způsob přístupu: obecný I/O nebo souborový systém  možný přístup formou souboru mapovaného do paměti  Znaková – klávesnice, myš, sériový port  příkazy: get, put  nad nimi knihovní podprogramy pro další možnosti (např. řádková editace) PB 169 Počítačové sítě a operační systémy10 Síťová zařízení  Přístup k nim se značně liší jak od znakových, tak od blokových zařízení  proto mívají samostatné rozhraní OS  Unix i Windows obsahující rozhraní nazývané „sockets“  separují síťové protokoly od síťových operací  přístup jako k souborům (včetně funkce select)  Existuje celá řada přístupů k síťovým službám  Pipes (roury), FIFOs, streams, queues, mailboxes PB 169 Počítačové sítě a operační systémy11 Blokující a neblokující I/O  Blokující  z hlediska procesu synchronní  proces čeká na ukončení I/O  snadné použití (programovaní), snadné porozumění (po provedení operace je hotovo to co jsem požadoval)  někdy však není dostačující (z důvodu efektivity)  Neblokující  řízení se procesu vrací co nejdříve po zadání požadavku  vhodné pro uživatelské rozhraní, bufferovaný I/O  bývá implementováno pomocí vláken  okamžitě vrací počet načtených či zapsaných znaků  Asynchronní  proces běží souběžně s I/O  konec I/O je procesu hlášen signály  obtíž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émy12 I/O subsystém v jádru  Plánování  některé I/O operace požadují řazení do front na zařízení  některé OS se snaží o „spravedlnost“  Vyrovnání (vyrovnávací paměti), buffering  ukládání dat v paměti v době přenosu k/ze zařízení  řeší rozdílnost rychlosti  řeší rozdílnost velikosti datových jednotek PB 169 Počítačové sítě a operační systémy13 Příklad: Sun Enterprise 6000 PB 169 Počítačové sítě a operační systémy14 I/O Subsystém v jádru  Caching  rychlá paměť udržuje kopii dat  vždy pouze kopii  caching je klíčem k dosažení vysokého výkonu  Spooling  udržování fronty dat určených k výpis na zařízení  pokud zařízení může vyřizovat požadavky pouze sekvenčně  typicky tiskárna  Rezervace zařízení  exkluzivita přístupu k zařízení pro proces  rezervace / uvolnění – volání systému  pozor na uváznutí (deadlock) PB 169 Počítačové sítě a operační systémy15 Výkon  I/O je nejvýznamnějším faktorem výkonu celého systému  CPU musí provádět ovladače a programy I/O části jádra  při přerušení se přepíná kontext  provádí se kopírování dat  zvláště významný je síťový provoz PB 169 Počítačové sítě a operační systémy16 Příklad: Síťová aplikace PB 169 Počítačové sítě a operační systémy17 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  CPU, paměť, sběrnice, I/O zařízení PB 169 Počítačové sítě a operační systémy18 Paměťová hierarchie  Primární paměti  nejrychlejší  energeticky závislé  Cache, hlavní (operační) paměť  Sekundární paměti  středně rychlé  energeticky nezávislé  Také nazývané „on-line storage“  flash disky, magnetické disky  Terciální paměti  levná typicky vyměnitelná média  pomalé  energeticky nezávislé  také nazývané „off-line storage“  floppy disky, magnetické pásky, optické disky PB 169 Počítačové sítě a operační systémy19 Magnetické disky PB 169 Počítačové sítě a operační systémy20 Struktura disku  Diskové mechanismy se adresují jako velká 1-dimensionální pole logických bloků  logické bloky jsou nejmenší jednotkou přenosu dat  1-dimensionální pole logických bloků je zobrazováno do sektorů disku sekvenčně  sektor 0 • první sektor na první stopě vnějšího cylindru  zobrazování pokračuje po této stopě, potom po ostatních stopách tohoto cylindru, a potom po cylindrech směrem ke středu PB 169 Počítačové sítě a operační systémy21 Plánování disku  OS je odpovědný za efektivní používání hardware  pro disky: co nejrychlejší přístup a co největší šířka pásma  Doba přístupu (access time) je dána:  dobou vystavení (seek time) – na cylindr se stopou s adresovaným sektorem  dobou rotačního zpoždění – dodatečná doba do průchodu adresovaného sektoru pod čtecí/zápisovou hlavou  Minimalizace doby vystavení  doba vystavení  vystavovací vzdálenosti  řeší plánování činnosti disku  Rotační zpoždění  shora omezeno konstantou  Šířka pásma  počet přenesených bytů / doba od zadání skupiny požadavků do jejich ukončení  převzatý pojem z telekomunikací PB 169 Počítačové sítě a operační systémy22 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émy23 FCFS  Celkem přesun o 640 cylindrů PB 169 Počítačové sítě a operační systémy24 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émy25 SSTF PB 169 Počítačové sítě a operační systémy26 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émy27 SCAN PB 169 Počítačové sítě a operační systémy28 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émy29 C-SCAN PB 169 Počítačové sítě a operační systémy30 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émy31 C-LOOK PB 169 Počítačové sítě a operační systémy32 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émy33 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ů  priorita I/O operací z důvodu výpadků stránek  Pořadí operací zápisu dat a metadat souborového systému PB 169 Počítačové sítě a operační systémy34 Technologie RAID  RAID: Redundant Arrays of Independent (Inexpensive) Disks  organizace 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  N = 100 disků, každý má MTTF = 100 000 hodin (cca 11 let), celý systém bude mít MTTF = 1000 hodin (cca 41 dní)  techniky 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  levná alternativa nahrazující velké drahé disky  „I“ je interpretováno jako „independent“ PB 169 Počítačové sítě a operační systémy35 RAID: zvýšení spolehlivosti  Redundance  nadbytečnost, doplňková informace použitelná pro obnovu informace po poruše (disku)  Zrcadlení (stínování), Mirroring (shadowing)  každý disk je duplikován, 1 logický disk je tvořen 2 fyzickými disky  každý zápis se provede na obou discích, čte se z jednoho disku  jestliž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í  prů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émy36 RAID: zvýšení výkonu  Dva hlavní cíle paralelismu v diskových systémech  zvýšení propustnosti vyvážením zátěže malými přístupy  paralelizace 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)  bit-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á  blok-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émy37 Ú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émy38 API  Většina OS pracuje s vyměnitelnými disky (např. disketami, ZIP disky) stejně jako s pevnými disky  nový svazek je formátován a na disku se generuje prázdný souborový systém  Pásky  jsou prezentované jako „holé“ (raw) paměťové médium  aplikace na páskách nemají k dispozici souborový systém  otevírají celý páskový mechanismus jako zařízení  páskové mechanismy se vesměs nesdílejí, jsou dedikované konkrétní aplikaci  OS 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émy39 Cena MB RAM (1981 – 2004) Dnes: asi $0.025/MB (4GB) PB 169 Počítačové sítě a operační systémy40 Cena MB pevných disků (1981 – 2004) Dnes: asi 0,000125$/MB (1TB) PB 169 Počítačové sítě a operační systémy41 Cena MB pásek (1981 -2004) Dnes: asi 0,000125$/MB (0.8TB)