Osnova témat

  • Úvod

    Logo OP VK



    Tato inovace předmětu Operační systémy je spolufinancována Evropským sociálním fondem a Státním rozpočtem ČR, projekt č. CZ.1.07/2.3.00/09.0197, "Posílení konkurenceschopnosti výzkumu a vývoje informačních technologií v Moravskoslezském kraji".


    Operační systémy

    Lektor: Šárka Vavrečková

    Osnova kurzu:

    1. Úvod do operačních systémů, funkce OS, typy OS, realtimové a distribuované systémy, historie.
    2. Struktura operačních systémů.
    3. Správa paměti.
    4. Procesy, multitasking.
    5. Synchronizace procesů.
    6. Plánování procesů.
    7. Správa periferií, ovladače.
    8. Správa souborů, souborové systémy.
    9. Grafický subsystém, X Window.
    10. Bezpečnost operačních systémů.
    11. Spolupráce operačních systémů, rozdělení disku, boot manažery.

    Tato osnova platí pro přednášky. Na cvičeních se probírá:

    • operační systém Windows (první polovina kurzu) - pokročilá správa systému, především na Příkazovém řádku,
    • operační systém Linux (druhá polovina kurzu) - taktéž pokročilá správa, především v textovém režimu (shell Bash)

    Cvičení navazují na přednášky jen volně, především z časového hlediska, aby bylo možné na cvičeních semestr rozdělit do dvou kompaktních částí (Windows a Linux).

    Cíle kurzu:

    Hlavním cílem kurzu je porozumět tomu, jak operační systémy fungují "uvnitř". Tato znalost je důležitá pro rozhodování při výběru operačního systému, jeho instalaci a správě.

    POZOR - zde zveřejněné materiály nejsou aktuální! Aktualizované materiály najdete na http://vavreckova.zam.slu.cz/vyuka.html

    Skripta:

  • Úvod do studia operačních systémů

    V této úvodní přednášce najdeme definice základních pojmů včetně samotného operačního systému, a také funkce, které se od operačních systémů očekávají. Seznámíme se s realtimovými a distribuovanými systémy.

  • Struktura operačních systémů

    Zde najdeme tyto informace:

    • základní typy struktur vyskytujících se v operačních systémech nebo jejich součástech,
    • jaká je struktura konkrétních operačních systémů - MS-DOS, Windows s DOS jádrem, Windows NT do verze XP, Windows od verze Vista a unixových systémů se zaměřením na Linux,
    • jak funguje hardwarové zabezpečení systému.
  • Správa paměti

    Tématem této přednášky je správa paměti, tedy způsoby přidělování paměti procesům, evidence a zabezpečení paměti. Budeme se zabývat také řešením této problematiky v nejpoužívanějších operačních systémech. Struktura kapitoly je následující:

    • modul správce paměti (jak funguje tento modul, základní pojmy při správě paměti, typy adres),
    • reálné metody přidělování paměti (jednoduché metody, které můžeme využít například při programování aplikace s vlastní správou paměti),
    • řešení fragmentace paměti (metody řešení problémů s nedostatkem velkých úseků volné paměti),
    • virtuální paměť (zde se přiblížíme k metodám, které jsou používány v moderních operačních pamětech, včetně odkládání oblastí paměti na vnější paměťové médium),
    • technologie (režimy procesoru při ochraně paměti, adresový prostor, NUMA architektura, Little a Big Endian),
    • správa paměti v operačních systémech MS-DOS, Windows, unixové systémy, MacOS.
    • Procesy

      Tato kapitola je úvodem do správy procesů. Dovíme se zde základní informace o procesech, jejich stavech, evidenci a kontextu. Struktura je následující:

      • evidence procesů (pojmy, binární spustitelné soubory, priority procesů, vznik a zánik procesu, přístupová oprávnění),
      • multitasking a multithreading, programování vícevláknových aplikací,
      • fronty procesů, přidělování procesoru,
      • plánování procesoru, priority a afinita v operačních systémech Windows XP a Linux,
      • komunikace procesů (princip komunikace procesů, a dále konkrétně komunikace ve Windows a v Linuxu).
      • Synchronizace procesů

        Probereme si základní synchronizační úlohy, problematika bude demonstrována pomocí Petriho sítí. Dále budeme pokračovat metodami řešení čekání před použitím sdílených objektů (kritických sekcí). Téma je ukončeno popisem synchronizačních nástrojů, které jsou v operačních systémech obvyklé. Struktura je následující:

        • úvod do synchronizace, úvod do Petriho sítí,
        • základní synchronizační úlohy (účelem je vystihnout typy úloh, kde je nutný některý druh synchronizace - jaké podmínky je třeba splnit při přistupování ke sdíleným prostředkům),
        • implementace čekání před kritickou sekcí (metody aktivního a pasivního čekání procesů či vláken během synchronizace přístupu),
        • synchronizační nástroje (princip nástrojů, které jsou obvykle k dispozici v operačních systémech - semafory, zprávy, monitory, RPC),
        • synchronizace ve Windows a v Linuxu (nástroje, které jsou programátorům k dispozici v těchto operačních systémech).
        • Uváznutí procesů

          Zde se budeme zabývat problematikou řešení uváznutí procesů. Probereme metody používané při prevenci uváznutí (vlastnosti operačního systému jsou nastaveny tak, aby k uváznutí nemohlo dojít), zamezení uváznutí (stav prostředků a požadavků procesů je neustále hlídán) a dále metody určené pro případ, že dovolíme uváznutí procesů, ale potřebujeme pravidelně zjišťovat, zda k tomuto stavu došlo a vhodně reagovat.

          • Správa periferií

            Na této přednášce se budeme věnovat správě vstupně-výstupních zařízení včetně struktury ovladačů a práce s přerušeními. Dále se zaměříme na vnější paměťová média a jejich adresářovou strukturu. Poslední část kapitoly je věnována jednomu z nejnáročnějších typů periferií, blokovým zařízením, a dále možnostem spouštění nenativních aplikací. Struktura kapitoly je následující:

            • I/O systém, druhy periferií,
            • ovladače - obvyklá struktura, ovladače ve Windows a v Linuxu,
            • přerušení, obsluha přerušení, řešení ve Windows a v Linuxu,
            • časovače, čas z pohledu operačního systému,
            • správa blokových zařízení - typické vlastnosti a problémy (BIOS), obvyklá struktura disku, nástroje pro správu disků v různých operačních systémech, zaváděcí programy operačních systémů,
            • diskové svazky ve Windows a v Linuxu,
            • možnosti instalace operačních systémů,
            • spouštění nenativních programů (virtuální počítač, emulátory operačních systémů, podsystémy).
            • Paměťová média

              Zde se budeme zabývat nejpoužívanějšími adresářovými strukturami a souborovými systémy pro operační systémy Windows a Linux. Podíváme se na jejich základní charakteristiky a odlišnosti a dále na jejich strukturu - způsob evidence souborů, adresářů a informací o nich, přístupová práva a zabezpečení. Důležitou součástí kapitoly je pojednání o nejpoužívanějších souborových systémech. Struktura kapitoly je následující:

              • úvod do správy paměťových médií, základní pojmy,
              • možné adresářové struktury a možnosti jejich využití,
              • soubory a systém souborů - základní pojmy, žurnálování,
              • souborové systémy ve Windows - FAT (FAT16, FAT32), NTFS,
              • souborové systémy pro Linux - VFS a celková struktura, ext2fs, ext3fs, ext4fs, ReiserFS, XFS, virtuální souborové systémy, výměnná optická média,
              • přístup k prostředkům z nenativního operačního systému.
              • Grafický subsystém

                Začátek přednášky je teoretický, dovíme se zde o obvyklých vlastnostech této nadstavby operačních systémů a její struktuře, navazuje téma X Window, kde se zabýváme nejpoužívanějším řešením grafického rozhraní pro unixové systémy. Přednáška je ukončena informacemi o technologiích rozšiřujících možnosti grafiky, především DirectX a OpenGL (toto téma je nepovinné).