Principy operačních systémů Lekce 1: Úvod
Sylabus Lekce 1: Úvod 2
Literatura Lekce 1: Úvod 3
Operační systém Základní programové vybavení počítače, které se zavádí do počítače při jeho startu a zůstává v činnosti až do jeho vypnutí Jeho hlavním úkolem je zajistit uživateli možnost ovládání počítače, vytvořit stabilní aplikační rozhraní pro procesy a přidělovat jim systémové zdroje Triviální definice: Operační systém je programové vybavení potřebné pro provoz počítače Operační systém je správce prostředků Budeme používat tuto definici: Operační systém výpočetního systému je správce fyzických prostředků daného systému, který zpracovává pomocí logických prostředků úlohy zadané uživatelem Lekce 1: Úvod 4
Operační systém Pohled shora OS je rozšíření stroje (virtualizace) Zjednodušující interface Příklad: čtení/zápis na disk Pohled zdola OS je správce prostředků procesory, paměti, V/V zařízení příklad: tisk na tiskárnu multiplexing (sharing) Lekce 1: Úvod 5
Fyzické prostředky výpočetního systému Procesor HW platforma systému, vykonává instrukce Vnitřní (operační) paměť RAM, ROM, DRAM, SDRAM, používá se během výpočtu, po dokončení výpočetních procesů se maže Vnější paměť dlouhodobé (trvalé) uložení dat, která nejsou právě zpracovávána (HD, DVD, USB drive, paměťová karta) Periferní zařízení (I/O systém) zařízení pro komunikaci s okolím (klávesnice, monitor, tiskárna, myš, scanner) Lekce 1: Úvod 6
Logické prostředky výpočetního systému Uživatel každý, kdo zadává nějakou zakázku výpočetnímu systému Úloha (job) - posloupnost činností potřebných ke splnění zakázky, specifikování postupu řešení zakázky Krok úlohy dílčí část úlohy, jeden prvek výše zmíněné posloupnosti Proces instance úlohy nebo kroku úlohy, je prováděn v operační paměti za použití konkrétních dat Lekce 1: Úvod 7
Základní pojmy Holý počítač - počítač pouze s nejzákladnějším softwarovým vybavením; pro běžného uživatele zcela neovladatelný. Operační systém - ovládá základní technické prostředky počítače a vytváří vhodnější podmínky pro jejich využívání v uživatelských programech. Funkce operačního systému tvoří podstatnou složku činnosti počítače. Úloha (Job) - souhrn činností potřebných k provedení zakázky; může být rozdělena na kroky. Kroky úlohy - jednotky činnosti, které musí být provedeny postupně v určitém pořadí (např. překlad programu, zavedení programu, spuštění programu apod.) Proces - instance úlohy, kterou vytváří procesor a která může být prováděna paralelně s jinými výpočty. Adresový prostor - souhrn programu a dat v procesu. Lekce 1: Úvod 8
Základní pojmy (pokračování) Multitasking funkce umožňující souběžné zpracování více úloh v teoreticky jednom okamžiku kooperativní multitasking - přiděluje prováděným procesům procesor na takovou dobu, na jakou ji procesor potřebuje preemptivní multitasking - na rozdíl od kooperativního vysoce výkonný. OS rozhoduje, komu přidělí jakou dobu procesor. Toto nastavení lze měnit prioritami. Přerušení je proces, během kterého je procesor nucen zaznamenat nějakou událost. Stejně tak existují prostředky k maskovaní přerušeni (tj. potlačení). Prostředky přerušení (interrupt hardware) -dovolují OS koordinovat paralelně probíhající operace - tím je umožněn paralelní běh uživatelských programů. Lekce 1: Úvod 9
Historie operačních systémů 50.léta počítače neměly operační systém, program byl psán a implementován pro konkrétní počítač (většinou v binárním kódu) Konec 50.let první náznaky operačních systémů (každý typ počítače měl ale svůj vlastní) řízení I/O operací, ochrana paměti, kontrola nekonečné smyčky 60.-70.léta Spoolovací systémy SPOOL - Simultaneous Peripheral Operation OnLine Jednoduchý multitasking běh více programů současně a přepínání mezi nimi, tak aby současně mohly využívat I/O operace 70.léta vznik Unixu a některých dalších OS (VMS, Multics) Lekce 1: Úvod 10
Historie operačních systémů 80.léta rozšíření 8 a 16-bitových počítačů každý výrobce se snažil implementovat vlastní OS např. CP/M. Vzniká také systém MacOS (pro počítače Apple Macintosh) poprvé implementuje grafické rozhraní (GUI), ovládání pomocí myši. 1981 IMP PC XT nejprve vývoj vlastního OS, ale nedokončený, implementace MS DOS Sálové počítače vlastní implementace Unixu (např. Solaris, BSD Unix) 90.léta vývoj Windows (monopol u PC, Win NT i u sálových počítačů) pol. 90.let GNU/Linux Lekce 1: Úvod 11
Funkce operačního systému Řídí a spravuje přístup ke zdrojům výpočetního systému - rozdělování času procesoru, přidělování operační paměti, přístup k vnějším pamětem (disk, CD ROM, DVD), správa komunikace s periferiemi (klávesnice, myši, tiskárny, scannery atd.). Organizuje přístup k datům - zamezení neoprávněného přístupu. Řídí zpracování úloh jejich přípravu, plánování a průběh tak, aby byla zajištěna maximální efektivita jejich zpracování. Podporuje komunikaci s uživatelem - provádění uživatelem zadaných příkazů a spouštění aplikací, informuje uživatele o vzniklých problémech či chybách. Lekce 1: Úvod 12
Funkce operačního systému Správa paměti přidělování paměti procesům, řešení problémů při nedostatku paměti, správa virtuální paměti Správa procesů evidence spuštěných procesů, plánování přidělení procesoru, sledování stavu procesů, komunikace mezi procesy Správa periferií vytváření rozhraní mezi I/O zařízeními a procesy, sledování stavu zařízení, přidělování zařízení procesům, řešení kolizí Správa systému uživatelský a privilegovaný režim práce systému, bezpečnostní funkce systému (ochrana proti škodlivým kódům, poruchám, neoprávněnému přístupu Správa souborů rozhraní k přístupu k datům na vnějších paměťových médiích, udržování informací o struktuře souborů na discích, kontrola přístupových práv procesů k souborům Správa uživatelů informace o uživatelích a jejich činnostech, login/logout Správa úloh evidence informací o úlohách, řešení kolizí apod. Lekce 1: Úvod 13
Operační systémy Ing. Nulíček Vladimír Uživatelské rozhraní (UI) Textové např. DOS, Unix komunikace pomocí příkazového řádku Grafické (GUI) MacOS, Windows Lekce 1: Úvod 14
Operační systémy Ing. Nulíček Vladimír Dělení operačních systémů jednouživatelské/víceuživatelské jednoúlohové/víceúlohové nesíťové/síťové podle úrovně podle sdílení CPU podle velikosti HW podle počtu procesorů podle míry distribuovanosti podle funkcí Lekce 1: Úvod 15
Operační systémy Ing. Nulíček Vladimír OS jedno/víceprocesorové Jednoprocesorové dokáží obsloužit pouze jeden procesor (např. Windows s DOS jádrem 9x, ME) Většinou zde existují pomocné procesory, např. grafický procesor na grafické kartě. Víceprocesorové dokážou rozplánovat úlohy tak, aby mohly být zpracovány na více procesorech zároveň (Unix, Linux, WinNT a vyšší) Asymetrický multiprocessing (ASMP) jeden procesor je vyhrazen pro systémové procesy, uživatelské procesy běží na ostatních procesorech Symetrický multiprocessing (SMP) kterýkoli proces může běžet na kterémkoli procesoru Lekce 1: Úvod 16
Operační systémy Ing. Nulíček Vladimír OS jedno/víceuživatelské Jednouživatelské současně může pracovat jen jeden uživatel (např. Windows s DOS jádrem 9x, ME) Víceuživatelské více uživatelů současně (Unixové OS, WinNT a vyšší) Lekce 1: Úvod 17
Operační systémy Ing. Nulíček Vladimír OS jedno/víceprogramové Jednoprogramové v jednom okamžiku může běžet pouze jeden program Víceprogramové současné může být spuštěno více programů Multitasking umožňuje sdílení prostředků mezi procesy těchto programů (vnitřní paměť, I/O zařízení apod.) Jednoúlohové odstavené programy musí odložit svůj paměťový prostor na vnější paměť a znovu ho odtamtud obnovit, pokud má daná úloha pokračovat Lekce 1: Úvod 18
Operační systémy Ing. Nulíček Vladimír OS lokální/síťové Lokální např. Windows s DOS jádrem, v síti typu klient-server mohou být pouze klienty Síťové unixové systémy a Win s NT jádrem, Novell Mají klientskou i serverovou verzi nebo jsou přímo specializované jen na funkce serveru (Novell Netware) Lekce 1: Úvod 19
Operační systémy Ing. Nulíček Vladimír Realtimové OS Pracují v reálném čase Vysoké požadavky na interaktivitu systému (řízení leteckého provozu, některých výrobních procesů apod.) Je požadována reakce systému s určitou horní časovou hranicí Většinou je možno zabezpečit přidělením tzv. realtimové priority některým procesům Většinou mají malé jádro (tzv. mikrojádro) pro nejdůležitější funkce (správa paměti, procesů), zbytek systému je implementován jako běžné procesy Př. QNX, RTLinux, RTX Lekce 1: Úvod 20
Operační systémy Ing. Nulíček Vladimír Distribuované OS Pracují na více než jednom procesoru Mají svůj program rozdělený na samostatné části, které spolu vzájemně komunikují (obvykle pomocí síťových protokolů) Každá část programu může být zpracována na jiném procesoru Distribuovatelnost s hrubou granularitou spíše větší části systému, komunikují spolu málo Distribuovatelnost s jemnou granularitou části systému jsou co nejmenší, hodně spolu komunikují Lekce 1: Úvod 21
Operační systémy Ing. Nulíček Vladimír OS podle výrobce MS Novell Apple SUN BSD Linux MS-DOS Netware Mac OS Solaris Free BSD Debian Windows Fedora SuSE Lekce 1: Úvod 22
Operační systémy Ing. Nulíček Vladimír Struktura OS Jádro (Kernel) - 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če I/O zařízení (Drivers) - 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 (Shell) - 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. Lekce 1: Úvod 23
Operační systémy Ing. Nulíček Vladimír Principy tvorby OS Vyšší jazyk Původně byly OS psány v assembleru Některé vyšší programovací jazyky (Fortran, Pascal) se pro něj nehodily Přelom nastal při vzniku jazyka C dnes většina OS vč. Unixu psány v jazyce C Jednoduché a krátké zdrojové kódy Objektový přístup Není příliš často využíván Vrstvená struktura Návrh běžícího systému Nenavrhovat OS od bootování k běhu, ale navrhnout OS nejprve pro běh a až později řešit inicializaci Ošetření výjimek Je možno řešit až nakonec, ale nesmí se na ně při návrhu OS zapomenout Lekce 1: Úvod 24
Vrstvená struktura OS Lekce 1: Úvod 25