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:

  1. 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.
  2. 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

 

Kam dál?