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
Paměť
Vstup
Procesor Řadič
ALU
Výstup
Harvardská architektura
Vstup
Paměť Paměť dat Paměť instrukcí Procesor Řadič
ALU
Výstup
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