Operační systémy 2 Přednáška číslo 1 Úvod do OS
Co je to operační systém (definice) Operační systém jsou ty programové moduly ve výpočetním systému, jež ovládají řízení prostředku, jimiž je tento výpočetní systém vybaven, jako jsou procesory, paměť (operační i vnější), I/O zařízení a soubory dat. Tyto moduly rozhodují spory, snaží se optimalizovat výkon a zjednodušují efektivní využívání výpočetního systému.
Co je to operační systém Operační systém zajišťuje nezávislost software na hardware Umožňuje spouštět aplikace Jedná se vlastně o první program spuštěný po startu počítače
Zavedení OS u PC Z BIOSu (Basic Input Output System programovatelná paměť) se zjistí médium, na kterém je OS Na tomto médiu se na MBR (Master Boot Record) načte OS nebo zavaděč OS Příklad Linux Zavaděč GRUB anebo LILO Jádro /boot/vmlinuz a RAM disk /boot/initrd (nemusí být) se zavedou do paměti a převezmou řízení počítače
Základní funkce OS Správa a přidělování paměti virtuální paměť Správa procesů synchronizace Přidělování procesoru multitasking Řešení zablokování deadlock Správa systému souborů virtuální souborový systém (VFS)
Vztah mezi uživatelem, aplikacemi, OS a hardware. (zdroj Wikipedie)
Správně fungující OS Uživatel Aplikace Shell OS Hardware
Nesprávně fungující OS (MS DOS) Uživatel Aplikace Shell OS Hardware
Rozdělování OS Různá kritéria Některé kritérium nelze vždy aplikovat Naopak některá jsou jednoznačná
Podle počtu ovládaných procesorů Jednoprocesorové (monoprocesorové) Víceprocesorové (multiprocesorové) Asymetrický processing (ASMP) na jednom procesoru běží procesy systému, na dalších uživatelské procesy Symetrický multiprocessing (SMP) kterýkoliv proces může běžet na kterémkoliv procesoru
Podle správy uživatelů Jednouživatelské (monouser) Víceuživatelské (multiuser) Více uživatelů pracuje současně v reálném čase Musí zajistit rozdělení a oddělení prostředků (paměti) mezi uživatele
Příklady Jednouživatelský Víceuživatelský JednoúlohovýMS DOS, CP/M Novell Víceúlohový Starší verze Windows nebo MacOS XP, Linux
Podle počtu spuštěných programů Jednoprogramové (monotasking) Více programové (multitasking) více úloh je spuštěno současně Preemptivní multitasking pravidelné střídání úloh (Mac OS X, UNIX, Windows NT, Windows95) Nepreemptivní multitasking lze spustit více úloh, ale úloha opustí procesor pouze při ukončení anebo čekání na v/v operaci Kooperativní jako preemptivní, ale o předání procesoru se starají samotné úlohy (Windows 3.X, Mac OS před X)
Podle schopnosti práce v síti Lokální nedokáží pracovat v síti bez přídavných modulů Síťové mají klientskou i serverovou verzi
Podle míry specializace Speciální pro jeden typ úloh Univerzální různé typy úloh
Realtimové operační systémy Musí být schopny práce v reálném čase Řízení letadla, jaderné elektrárny, Musí reagovat okamžitě horní časová hranice Většinou mají malé jádro (mikrojádro), které ovládá jen základní funkce a na vše další se volají moduly Příklady: QNX RTLinux RTX RealTime extension nadstavba pro Windows
Základní typy struktur OS Monolitická struktura jádro a rozhraní - MS DOS, zařízení (tiskárny) Vrstvená struktura části systémů uspořádány do vrstev každá vrstva využívá služeb nižších vrstev. Systém je budován od vnitřních vrstev k vnějším. Vnitřní vrstvy jsou proto nejdůležitější z hlediska bezpečnosti. V současnosti nejčastější struktura
Základní typy struktur OS Virtuální počítače systém je rozdělen do samostatných modulů. Každý z nich vybaven prostředky. Obvykle se vzájemně neovlivňují. Abstraktní počítače jako virtuální počítače. Každý modul má svou pevnou specifickou funkci. Ovladače zařízení.
Základní typy struktur OS Model klient server systém má mikrojádro, které obsahuje jen základní funkce, ostatní funkce systému provádějí speciální systémové procesy servery. Procesy, které spouští uživatel se nazývají klienti a využívají služeb serveru. Typicky realtimové OS Stavebnicová struktura co nejmenší jádro. Zbytek je přilinkován pouze tehy, vyžaduje-li ho některý z klientů. Opět typicky realtimové OS
Ukázky struktury skutečných OS Linux
Ukázky struktury skutečných OS Windows 2000
Ukázky struktury skutečných OS Longhorn (vývojová větev Windows Vista)
Ukázky struktury skutečných OS Mac OS X
Ukázky struktury skutečných OS Android (mobilní zařízení a netbooky)
Ukázky struktury skutečných OS OpenMoko (mobilní telefony)
Připomenutí Hardware Pro potřeby našeho předmětu
Struktura počítače Von Neumannovo schéma Matematik maďarského původu Neumann Publikoval toto schéma v roce 1945 Navazuje na starší práce Harvardská architektura Skutečně používaná Od von Neumannova schématu se liší oddělením paměti pro kód a data
Von Neumannovo schéma Vstup Paměť Výstup Procesor Řadič ALU
Harvardská architektura Vstup Paměť instrukcí Paměť Paměť dat Výstup Procesor Řadič ALU
Model mikroprocesoru 8086 šestnáctibitový 80286 dva režimy reálný a chráněný 80386 třicetidvoubitový až 4GB RAM 80486 pipelining 4 instrukce současně fázování instrukcí pipelining Pentium zdvojené registry (64 bitové), multimediální instrukce, lepší pipelining
Registry 80386 Datové (32 bitů) EAX, EBX, ECX, EDX Spodních 16 bitů AX, BX, CX, DX Horních 8 bitů AH, BH, CH, DH Dolních 8 bitů AL, BL, CL, DL AH AL AX EAX
Registry 80386 Speciální použití datových registrů EAX Acumulator (střadač) násobení a dělení, vstupně-výstupní operace EBX Base nepřímá adresace paměti ECX Counter počítadlo EDX Data nepřímá adresace při vstupněvýstupních operacích
Registry 80386 Ukazatele a indexregistry 32 bitové spodních 16 bitů jméno bez E Dále nelze dělit EBP (Base Pointer) adresace parametrů funkcí a lokálních proměnných na zásobníků (neměnit) ESP (Stack) vrchol zásobníku (neměnit) EDI (Destination Index) adresa cíle ESI (Source) adresa zdroje EIP (Instruction Pointer) ukazatel na aktuální místo v programu nelze přímo měnit
Registry 80386 EFlags registr vlajek (Příznaků) Spodní polovina Flags Nelze s ním pracovat jako s celkem, jen s jednotlivými příznaky Nastavují se automaticky dle posledního výsledku Např. CF (Carry) přenos přes nejvyšší byt ano/ne (1/0) PF (Parity) zda je sudý/lichý (1/0) počet jedniček dolních osmi bitů výsledku ZF (Zero) zda je poslední výsledek 0 SF (Sign) zda byl poslední výsledek záporný OF (Overflow) zda nedošlo k přetečení
Připomenutí programování OS jsou obvykle psány kombinací jazyka C a Jazyku symbolických adres (JSA) Assembleru Assembler Dvě syntaxe Intelovská add ebx,5 AT&T addl $5,%ebx (obě instrukce přičtou 5 do registru ebx) Adresace Přímá místo v paměti je známo Nepřímá podle ukazatele (registru)
Konec Děkuji za pozornost