Q Návrh OS Q Klasifikace OS Q| Kernel operačního systému Návrh OS • efektivita • robustnost • flexibilita • přenositelnost • kompatibilita • bezpečnost Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií I podzim 2011 2/18 Návrh OS • Maximální využití dostupných zdrojů • Použití jednoduchých a jasných principů • Dekompozice návrhu • Objektově orientovaný návrh (pozor na přílišnou fragmentaci) • Agenti • Komponentní programování Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 3/18 Návrh OS • Schopnost úspěšně se vzpamatovat po výpadku • Řešeno redundancí (standardní inženýrské řešení): snižuje ovšem pozorovanou efektivitu • První výzkum v ČR koncem 50. a začátkem 60. let (Ing. Svoboda) • Běžné trojnásobné jištění (např. řídící počítače atomových ponorek USA) • V současné době zájem o self-healing programy Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 4/18 Návrh OS • Možnost úpravy (adaptace) podle změněných potřeb • Často používána ve významu rozšiřitelnost (extenzibilita) • Definuje a fixuje se rámec (framework) • Přidání nové složky bez změny rámce snadné • Případně hierarchie rámců (přidání či modifikace nového rámce) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 5/18 Návrh OS • Úzce souvisí s operačními systémy o Dostatečná abstrakce detailu • Virtuální „disk" namísto konkrétního zařízení • Programy psány bez odkazů na speciální vlastnosti • Využití standardů • Opět možný rozpor s požadavkem efektivity Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 6/18 • Odstínění specifických detailů • Využití standardů • Efektivita? • Nemusí být negativně ovlivněna Návrh OS Cíl: • Ochrana dat a majetku před krádeží, zneužitím, či poškozením při současném zachovaní přístupu vybraných uživatelů. Problémy: • Větší nároky na správu systému • Snižuje snadnost použití • Klade dodatečná omezení na uživatele (disciplina) • Srovnání: MS Windows 95 versus MS Windows NT Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 8/18 Návrh OS Stejný (podobný) hw a různé priority • Server: např. stabilita, bezpečnost, propustnost • Pracovní stanice: např. snadnost ovládání, rozumný výkon ve všech oblastech • Specializovaná grafická stanice: maximalizace grafického výkonu • Řídící systém: požadavky real-time, robustnost, Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 9/18 Monolitický Vrstvený Modulární mikro-kernel Klasifikace OS • Původní operační systémy (proprietami) 0 Abstrakce nepoužívána příliš dovnitř • Nejasné rozlišení funkcí uvnitř operačního systému • „Velké", špatně rozšiřitelné, špatně udržovatelné • Poplatné době pomalejšího vývoje hardware a jeho vysoké ceny Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 11 / 18 • Vrstvy odpovídají procesům správy: • Správa CPU • Správa paměti • Správa periferií • Správa systému souborů • Lepší abstrakce • Komunikace mezi vrstvami Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií I podzim 2011 12 / 18 Moduly namísto vrstev Zapouzdření (enkapsulace) funkcí Komunikace mezi moduly Příbuzný objektovému přístupu Lepší údržba Riziko vzniku „fatware" Kernel operačního systému • Kernel, též jádro operačního systému: • Základní složka operačního systému o Odpovídá za: • Alokaci a správu zdrojů • Přímé ovládání hardware (nízkoúrovňové interfaces) • Bezpečnost • Mikrokernel: • Malé je pěkné • Modulární přístup, malé moduly odpovídající za konkrétní operace • Rada funkcí až v uživatelském prostoru • Vysoce flexibilní, upravení operačního systému podle potřeby Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 14 / 18 Kernel operačního systému • Definují způsob („calling conventions") přístupu k operačnímu systému a dalším službám • Sestává se z definicí funkcí, datových struktur a tříd • Představuje abstrakci volané služby • Účel: • Přenositelnost • Snadná správa kódu • Další použití a Překlad mezi službami vysoké a nízké úrovně • Převod typů/struktury parametrů • Převod mezi způsoby předávání parametrů (by-value a by-reference) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 15 / 18 Kernel operačního systému • Práce se soubory: • Otevření: int open(char *path, int of lag, ...) • Čtení: int read(int fildes, char *buf, unsigned nbytes) • Zápis: int write(int fildes, char *buf, unsigned nbytes) • Zavření: int close (int fildes) • Práce s pamětí: • Alokace paměti: void *malloc(size_t size) • Uvolnění paměti: void free(void *ptr) • Změna alokace: void *realloc(void *ptr, size_t size) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 16 / 18 Kernel operačního systému • Zpřístupněny prostřednictvím příslušného API • Abstrakce: možnost výměny konkrétního zařízení (disk, síťová karta) bez vlivu na způsob použití • Příznaky a klíče pro ovládání specifických vlastností: přenositelnost versus efektivita • Ovladače na nejnižší úrovni („nejblíže" hardware) • Specifické „jazyky" ovládání periferií na této úrovni • Práce se signály (např. změna stavu periferie) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 17 / 18 Kernel operačního systému Začlenění ovladače do jádra • kooperativní vs. hierarchické (možnost preempce) • efektivita vs. stabilita • formální verifikace ovladačů: Microsoft Static Driver Verifier Příklady • Práce s diskem • Ovládání klávesnice a myši (čtení signálů) • Grafika a ovládání grafických rozhraní • Síťové karty Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 18 / 18