Struktura OS
Co vše provádí operační systém
- Organizuje přístup a využívání zdrojů počítače (čas procesoru, přístup k datům na discích, přístup do paměti).
- Fyzicky zajišťuje vstup a výstup dat podle požadavků ostatních programů.
- Komunikuje s uživatelem a na základě jeho pokynů vykonává požadované akce.
- Reaguje na chybové stavy programů a mylné požadavky uživatelů tak, aby tyto chyby nezpůsobily zásadní destrukci systému nebo poškození dat.
- Spravuje komunikaci s periferiemi. Definuje nastavení klávesnice, citlivost myši a dalších zařízení.
- Eviduje využívání systémových zdrojů apod.
Struktura OS
Operační systém je zpravidla tvořen tzv. jádrem (kernel), ovladači V/V zařízení (driver), příkazovým procesorem (shell) a podpůrnými systémovými programy.
- Jádro - po zavedení do paměti řídí činnost počítače, poskytuje procesům služby a řeší správu prostředků a správu procesů.
- Ovladač - zvláštní (pod)program pro ovládání konkrétního zařízení standardním způsobem. Použití strategie s ovladači umožňuje snadnou konfigurovatelnost technického vybavení.
- Příkazový procesor - program, který umožňuje uživatelům zadávat příkazy ve speciálním, obvykle jednoduchém jazyce.
- Podpůrné programy - do této kategorie jsou mnohdy zahrnovány i překladače (jazyk C v OS UNIX) a sestavující programy. Stojí na stejném místě jako aplikační programy.
Jádro OS
Jádro se zpravidla dělí na dvě podstatné části:
- Správa procesů - správa procesů (prakticky není u jednoduchých OS) řeší problematiku aktivování a deaktivování procesů podle jejich priority resp. požadavků na prostředky.
- Správa prostředků - zajišťuje činnost V/V zařízení, přiděluje paměť, případně procesory. Velmi důležitou částí správy prostředků je: správa souborů - způsob ukládání souborů a přístupu k nim. Moderní OS zajišťují jednotný pohled na soubory a zařízení. Zařízení jsou považovány za soubory se speciálním jménem.
Generické komponenty OS
- Správa procesoru (procesorů)
- Správa procesů (proces – činnost řízená programem)
- Správa vnitřní (hlavní) paměti
- Správa souborů Správa I/O systému
- Správa vnější (sekundární) paměti Networking, distribuované systémy Systém ochran Interpret příkazů
Správa procesů
- Proces – činnost řízená programem, provedení programu, „process“ nebo „task“
- Proces potřebuje pro svou realizaci jisté zdroje (CPU, paměť, I/O zařízení, …)
- Z hlediska správy procesů je OS zodpovědný za:
- Vytváření a rušení procesů
- Potlačení a obnovení procesů
- Synchronizace procesů a jejich vzájemná komunikace
- Variantou procesu je tzv. Vlákno – jednotka plánování činností definovaná v programu. Vlákna používají zdroje přidělené procesu.
Správa procesoru
- OS vybírá procesy běžící na dostupných procesorech.
- Dále podle typu OS zde patří i plánování vláken.
Správa vnitřní paměti
- Vnitřní pamětí se myslí primární, operační paměť, neboli fyzický adresový prostor (pole samostatně adresovatelných slov nebo bytů), repositář pohotově (rychle) dostupných dat sdílený CPU a I/O zařízeními.
- Vnitřní paměť energeticky závislá, ztrácející se po výpadku energie.
- OS je z hlediska správy vnitřní paměti odpovědný za:
- Vedení přehledu, který proces v daném okamžiku využívá kterou část paměti
- Rozhodování, kterému procesu po uvolnění paměti tuto paměť poskytnout
- Přidělování a uvolňování paměti
- Programátor vidí logický adresový prostor – ten je vymezen formou adresy v instrukci. OS zavádí programy a data do tohoto prostoru podle potřeby. Transformaci logické adresy na fyzickou se zpravidla provádí až při provádění instrukce. Struktura logického adresového prostoru může být lineární (pole) nebo dvojdimensionální (kolekce samostatných lineárních segmentů proměnné délky).
Správa I/O systémů
Poskytuje repositář vyrovnávacích pamětí a univerzální rozhraní ovladačů (driverů) I/O zařízení, a pak také samotné ovladače (drivery).
Správa vnější paměti
Správa energeticky nezávislé, sekundární paměti s dostatečnou kapacitou. Jako sekundární paměť obvykle slouží disky. OS je zodpovědný za:
- Správu volné paměti
- Přidělování paměti souborům
- Plánování činnosti disku
Správa souborů
Soubor – identifikovatelná kolekce souvisejících dat definovaná svým tvůrcem. Obvykle reprezentuje i programy i data.
OS je z hlediska správy souborů zodpovědný za:
- Vytváření a rušení souborů
- Vytváření a rušení adresářů (katalogů)
- Podporu primitivních operací pro manipulaci se soubory a adresáři
- Zobrazování souborů do sekundární paměti
- Archivování souborů na energeticky nezávislá média
- Networking, distribuované systémy
Distribuovaný systém – kolekce procesorů nesdílejících ani fyzickou paměť, ani hodiny. Procesory distribuovaného systému jsou propojeny komunikační sítí. Komunikace je řízena protokoly.
Systém ochran
Mechanismus pro řízení přístupu k systémovým a uživatelským zdrojům. Tento systém je součástí všech vrstev OS.
Systém ochran musí:
- Rozlišovat mezi autorizovaným a neautorizovaným použitím
- Poskytnout prostředky pro své prosazení
Interpret příkazů
- Většina zadání je předávána operačnímu systému řídícími příkazy, které zadávají požadavky na:
- Správu a vytváření procesů
- Ovládání I/O zařízení
- Správu sekundární paměti
- Práci v síti
Program, který čte a interpretuje příkazy je označován v různých OS různými názvy – command line interpreter, shell, …
Struktura OS podle jádra
- Monolitická jádra (Monolithic kernel)
- Otevřené systémy (Open systems)
- Microkernel
Monolitický OS
OS je na jednom místě (pod „červenou čárou“). Aplikace používá dobře definované rozhraní systémových volání pro komunikaci s jádrem.
Příklady OS – Unix, Windows NT / XP, Linux, BSD, …
Monolitické jádro je specifické pro komerční systémy.
Výhody:
- Dobrý výkon
- Dobře pochopená koncepce
- Jednoduché pro vývojáře jádra
- Vysoká úroveň ochrany mezi aplikacemi
Nevýhody:
- Žádná ochrana mezi komponentami jádra
- Není jednoduše a bezpečně rozšiřitelné jádro
- Celková struktura je ve výsledku komplikovaná, neexistují hranice mezi moduly jádra
Otevřené Systémy
Aplikace, knihovny i jádro jsou všechny v jednom adresovém prostoru.
Jestli se to zdá být jako šílená myšlenka, zde jsou příklady – MS-DOS, Mac OS 9 a starší, Windows ME, 98, 95, 3.1, Palm OS.
Tato koncepce bývala velmi běžná.
Výhody:
- Velmi dobrý výkon
- Velmi dobře rozšiřitelné
- Výhodné pro jednouživatelské OS
Nevýhody:
- Žádna ochrana mezi jádrem a aplikacemi
- Nepříliš stabilní
- Skládání rozšíření může vést k nepředvídatelnému chování
Microkernel OS
Filosofie návrhu – chráněné jádro obsahuje pouze minimální (malou, čistou, logickou) množinu abstrakcí:
- Procesy a vlákna
- Virtuální paměť
- Komunikace mezi procesy
Všechno ostatní jsou server-procesy běžící na uživatelské úrovni.
Příklady OS – Mach, Chorus, QNX, GNU Hurd
Zkušenosti s tímto návrhem jsou smíšené.
Výhody:
- Přidáním server-procesu se rozšíří funkcionalita OS
- Jádro nespecifikuje prostředí OS
- Servery na uživatelské úrovni se nemusí zabývat hardwarem
- Silná ochrana OS i sám proti sobě (části OS jsou oddělené servery)
- Jednoduché rozšíření na distribuovaný nebo multiprocesorový systém
Nevýhody
- Výkon (Systémová volání viz. dále)
- Špatná minulost
Systémová volání – příklad