Popis:
Úvod
Tento text je určen pro čtenáře, kteří mají minimální představu o hardwaru počítače, zkusili si něco napsat anebo alespoň někdy viděli kousek nějakého programu. Znalost programovacího jazyka není podmínkou, ale vede k lepšímu pochopení toho, jak se určité věci implementují.
Co je operační systém?
Když si přivezete svůj první počítač domů, zjistíte, že vám nestačí mít klávesnici, myš, monitor a tu záhadnou hlučící bednu pod vaším stolem. Je ještě třeba něco, kde si napíšete svůj referát do školy, pošlete mail, zabrouzdáte si na Internetu apod. Z tohoto zevrubného pohledu se můžeme dívat na operační systém jako na základní programové vybavení počítače.
Otázkou zůstává, co znamená základní. Co je skutečně třeba a co by měl mít každý operační systém. A co naopak je jen navíc, aby se uživatel cítil dobře, že mu nic neschází.
Takovým operačním systémem jsou MS Windows, s kterým přišel do styku patrně každý. Mnozí slyšeli o stále více populárním Linuxu. Někteří vzpomínají na doby MS DOS. Grafici používají počítače Apple s MacOS, v bankách se používají různé verze Unixu ad.
Základní vlastnosti operačních systémů
Nahlížet na operační systém jen jako na balík programů, který uživateli usnadňuje práci při řešení jeho úkolů, by byl jen velmi úzký pohled na věc. Slovem operační systém v počítačovém světě se myslí jako právě prostředek, který umožňuje běh aplikačních programů jako textový editor, prohlížeč, poštovní klient ... Takový pohled bývá označován: operační systém jako virtuální stroj (virtual machine).
Další základní vlastností operačního systému by mělo být, že umožňuje běh více programů najednou - vytvořit alespoň zdánlivou iluzi pro uživatele, ale i pro samotné programy. Takovou vlastnost například nesplňuje MS DOS, proto označení operační systém je poněkud nadnesené pro tento systém „operujícím s disky“. Pokud máme více programů, které běží najednou, je nutno vyřešit přístup ke hardwarovým zdrojům počítače. Je třeba vyřešit, když dva programy chtějí najednou zapisovat na disk, když chtějí tisknout na obrazovku, poslat něco po síti. Který program bude odchytávat vstup od uživatele jako stisk tlačítka na klávesnici, pohnutí myší. A v neposlední řadě je třeba na jednoprocesorovém počítači vyřešit, který z programů bude právě běžet - instrukce kterého programu bude procesor vykonávat. Tyto všechny úkoly musí operační systém řešit, proto nahlížíme na operační systém jako na správce zdrojů (resource manager).
Windows řady NT, Linux ad. mají dále správu uživatelů. Každému uživateli jsou přidělována práva, které soubory smí číst, do kterých může zapisovat, které programy může spouštět. Každý uživatel má svůj vlastní adresář, kde má svoje soukromé soubory, vlastní nastavení uživatelských aplikací ad.
Klíčová slova:
OS
procesy
vlákna
semafor
synchronizace
deadlock
správa paměti
algoritmus
implementace
Obsah:
- Úvod 2
Co je operační systém? 2
Základní vlastnosti operačních systémů 2
K čemu je operační systém 2
Historie operačních systémů 3
Procesy, vlákna 4
Plánovač 4
Stavy procesu 5
Algoritmy plánování 6
Přerušení procesoru 7
Synchronizace 8
Synchronizační primitiva 9
Zámky (Locks) 9
Semafory 9
Zasílání zpráv 10
Implementace synchronizačních primitiv 10
Synchronizační problémy 10
Deadlock 11
Správa paměti 11
Virtuální stránkování 12
Víceúrovňové tabulky stránek 13
Algoritmy výměny stránek 15
Beladayova anomálie 15
Závěr 16
Zdroje:
- Přednáška Základy operačních systémů a překladačů - Jakub Yaghob
- Poznámky z přednášky Operační systémy - Petr Tůma
- Přednáška Unix - Martin Beran
- Zdrojový kód 1.semestrální práce do Operačních systémů - Jan Vávra, Miron Tegze