3. přednáška http://www.uai.fme.vutbr.cz/~vdumek/ 19. 2. 2013 hierarchie pamětí vyrovnávací paměť režimy práce procesoru Flynnova klasifikace systémů vrstvy počítačového systému operační systémy (Resource Manager, obecné poznatky, vrstvy, moderní OS, vlastnosti, služby) řídící struktury OS Studijní materiály najdete na adrese: http://www.uai.fme.vutbr.cz/~vdumek/
Hierarchie pamětí Pokud se postupuje hierarchií dolů: Magnetická páska Optický disk Magnetický disk Elektronický disk Operační paměť Cache Registr zvyšuje se frekvence přístupů levnější, větší kapacity, pomalejší přístup Pokud se postupuje hierarchií dolů: - klesá cena bitu - zvyšuje se kapacita - zvyšuje se doba přístupu - klesá frekvence přístupů z procesoru do paměti rychlejší přístup, větší kapacita = dražší bit, větší kapacita = pomalejší přístup velkokapacitní paměti – dlouhá doba přístupu, rychlé paměti – menší kapacita
Cache paměť CPU Word Transfer - drahá a velmi rychlá paměť Main memory Cache CPU Block Transfer Word Transfer - drahá a velmi rychlá paměť - kontakt s pomalejší a větší hlavní pamětí - OS a uživatelské procesy ji nevidí - je v interakci s HW správy paměti (MMU) - hledání odkazovaného slova v cache při neúspěchu přesun dalšího bloku dat prostorová lokalita
Režimy práce procesoru většina procesorů podporuje nejméně dva režimy zpracování instrukcí, zpracování spojené s uživatelským programem (user mode), zpracování spojené s operačním systémem (system mode, control mode, kernel mode) je potřeba oddělit manipulaci se systémovými daty a uživatelskými daty oddělení není nezbytné, ale z hlediska bezpečnosti velice žádoucí režim je indikován na procesoru typicky pomocí jednoho bitu
Flynnova klasifikace systémů Michael J. Flynn (Stanford University,1966) třídí paralelní systémy z hlediska počtu toků instrukcí a počtu toků dat, příliš hrubé rozdělení, přesto rozšířené, rychlé přežívání, rozlišuje čtyři základní kategorie počítačových architektur: SISD (Single Instruction Single Data) jednoprocesorový počítač zpracovávající jeden tok dat, data v jedné paměti (von Neumann) SIMD (Single Instruction Multiple Data) počítač používající větší počet funkčních jednotek (procesorů), všechny procesory vykonávají současně stejnou operaci na různých datech, maticové počítače, vektorové počítače MISD (Multiple Instruction Single Data) hypotetická kombinace několika programů zpracovávajících jeden tok dat, takový princip se zatím nepoužívá a je někdy nesprávně zaměňován se systémem se zřetězeným zpracováním instrukcí (pipelining), u zřetězeného zpracování instrukcí je aktivní vždy pouze jeden program, kategorie počítačů, která není v praxi příliš běžná, posloupnost dat je přenášena k množině procesorů, lze sem zařadit některé speciální systémy, jako jsou systolická pole nebo neuronové sítě, implementováno zřídka MIMD (Multiple Instruction Multiple Data) obecný typ paralelního systému, který obsahuje jednotky již tak samostatné, že každá z nich plní samostatný program a přitom zpracovávají jiná data, nejčastější typ paralelizace, multiprocesorový systém, v němž je každý procesor řízen samostatným programem a pracuje nad svými daty, multiprocesorový systém – těsná vazba, distribuovaný systém – volně vázaný systém
Vrstvy počítačového systému Computer hardware Operating system Utilites Application programs End user Programmer Operating system designer
OS jako Resource Manager Computer System I/O Devices I/O Controler Operating System Software I/O Controler Programs & Data Storage I/O Controler Operating System Software Processor Processor Programs & Data
Obecné poznatky o operačních systémech Rozdělení operačních systémů: podle počtu úloh: jednoúlohové, multitaskové podle počtu uživatelů: jednouživatelské, víceuživatelské podle účelu použití: univerzální (nespecializované), specializované (RT- systémy, mívají zvláštní požadavky na řízení periferií, na interface s uživatelem, ...), databázové systémy, síťové operační systémy Obecná struktura OS: * řídící program (kernel, executive) * příkazový procesor (command processor) * řídící V/V programy * obsluha souborů * pomocné programy (utilities)
Obecné poznatky o operačních systémech OS je správcem prostředků (zdrojů). Řídí běh ostatních procesů (předává a bere řízení), vlastní jednotlivé systémové zdroje (přiděluje je a odebírá jednotlivýn procesům), zajišťuje rozhraní mezi uživatelem a HW, unifikuje detaily o HW pro procesy a uživatele (spravuje detaily HW ve vlastní režii). Operační systém je program, který funguje jako prostředník mezi uživatelem a hardware počítačového systému. Vytváří prostředí pro spouštění programů uživatele. Hlavním cílem je zabezpečení pohodlného přístupu uživatelů k programům a efektivní využívání technického vybavení. Podle odborné definice je OS pouze program, který běží neustále na počítači, tzv. výkonné jádro (kernel) operačního systému. Podle širší definice patří k OS i editory, kompilátory, GUI, atd. Ve formě virtuálního počítače OS skrývá detaily ovládání jednotlivých zařízení (zajišťuje transparentnost), definuje standardní rozhraní pro volání systémových služeb. diskové, specifické postupy při vývoji, assembler versus vyšší programovací jazyky, výsadní postavení jazyka C, vrstvená struktura s jednostranným tokem, krátké zdrojové texty pro snadnější ladění, objektový způsob přinesl možnost snadnější modifikace a rozšiřování, využití dědičnosti pro zvýšení flexibility
Vrstvy operačního systému operace přístupu k souboru, otevírání, zavírání, přesuny, ochrana, umístění, stav, ... „Holý počítač“ Přidělování procesoru Přidělování paměti Přidělování I/O Systém souborů stav periferií, stav kanálů a řídících jednotek, sdílení, přiřazení, efektivní přiřazování stav paměti, její využití, rozsah a doba přidělení, vlastník, uvolňování a vracení stav procesoru a procesů, plánování úloh, dispečer, plánovač úloh, vypršení limitu HW počítače
Moderní operační systémy nikoliv pouhá modifikace stávajících vlastností OS a jejich rozšiřování, zcela nová organizace, byly vytvořeny jak experimentální, tak komerčně využívané OS, pozornost zaměřena na oblasti: mikrokernelová architektura ve stávajících OS jednolitý kernel, ten prováděl většinu funkcí (plánováni, souborový systém, síťové služby, řízení paměti, ovladače zařízení, ...), byl implementován jako samostatný proces, jeden adresní prostor, mikrokernel si ponechává pouze některé funkce, zbytek je realizován samostatnými procesy (servery), ty běží v uživatelském módu, větší flexibilita, vhodné pro distribuované prostředí multithreading proces je prováděn pomocí více vláken, vlákno (sled, thread) je systémový objekt, který vzniká v rámci procesu, je viditelný pouze uvnitř procesu, výkonná jednotka procesu, charakterizován svým stavem, společné systémové prostředky (paměť, soubory, globální proměnné, …), vlastní zásobník, přiděluje se jim procesor, proces je systémový objekt charakterizovaný svým paměťovým prostorem a kontextem symetrický multiprocessing disponuje více procesory, sdílí jednu paměť a stejné I/O zařízení, propojeny komunikační sběrnicí, všechny procesory mohou provádět stejnou činnost distribuované OS ošetření několika samostatných počítačů jedním OS, multipočítačový systém, každý z počítačů má vlastní prostředky, DOS poskytuje iluzi jedné kolekce prostředků (paměť, ...), vývoj probíhá pomaleji než SMP objektově orientovaný návrh modulární přístup, dědičnost, pro plnohodnotné distribuované OS
Požadované vlastnosti OS Výkonnost (určena spoustou faktorů): střední doba mezi procesy, doba nečinnosti CPU, doba obrátky pro úlohy, čas odezvy, využití zdrojů, výkonnost počítače, kompromisní řešení Spolehlivost: v ideálním případě bez chyb Udržovatelnost: modulární řešení, jasné definice interface mezi jednotlivými moduly, rozšiřování schopností, oprava chyb Velikost: odůvodněná velikost v paměti i na disku, větší systémy jsou náchylnější k poruchám
Služby OS - vytváření programů na uživatelské úrovni editory, kompilátory, sestavovací programy, ladící programy - provádění programů zavádění programů do RAM, multiprogramové podpora komunikace a synchronizace procesů všechny OS jsou postaveny na základě zpracování procesů - V/V operace a operace se soubory zpřístupňování, formátování, privilegované operace - přístup k počítačovému systému ochrana při přístupu k systémovým zdrojům a údajům, řešení konfliktů při soupeření o zdroje - chybové řízení detekce chyb (HW, SW, neschopnost OS splnit požadavek aplikace), reakce na chyby - protokolování statistiky o zdrojích, monitorování výkonu, kalkulace cen, inspirace pro zlepšování konfigurace
Řídící struktury OS OS musí mít informace o aktuálním stavu procesů, informace o stavu HW zdrojů OS vytváří a udržuje tabulky o všech částech, které jsou pro něj důležité čtyři různé typy tabulek (paměť, I/O, soubory, procesy) mohou být rozdíly mezi různými OS, uvedené kategorie ale platí obecně Memory tables – sleduje se stav primární (real) i sekundární (virtual) paměti, část paměti je rezervována pro OS, zbytek je pro procesy, tabulky musí obsahovat informace o alokování obou pamětí procesům, ochranné atributy pro neoprávněný přístup (sdílení), informace potřebné k řízení virtuální paměti I/O tables – jsou používány OS k řízení I/O zařízení a kanálů systému, obsahují informace o přiřazení I/O zařízení jednotlivým procesům, jejich dostupnost File tables – informují o uložení souborů na disku, všechny jeho atributy, informace využívá hlavně souborový systém Process tables – slouží pro řízení procesů, musí obsahovat lokalizaci procesu (PCB (task control block, process descriptor, task descriptor), process image)
Řídící struktury OS Memory tables Memory Devices I/O tables Files Process image Process 1 Memory tables Memory Devices I/O tables Files Processes File tables Process 1 Process image Process 2 Primary process table Process n Process 3 . Process n