PB001: Uvod do informačních technologií Luděk Matýska Fakulta informatiky Masarykovy univerzity podzim 2015 Luděk Matýska (Fl MU) PB001: Uvod do informačních technologií podzim 2015 1/20 O Návrh OS Q Klasifikace OS Q Kernel operačního systému Luděk Matýska (Fl MU) PB001: Uvod do informačních technologií podzim 2015 2 / 20 • Operační systém je velmi komplikovaný programový produkt • Vývoj odráží změny v informačních technologiích • programovací jazyky e softwarové inženýrství • vývoj hardware (kvalita, kapacita, .. .) 9 vývoj periferií • (Prakticky) každý se s ním potká • Principy návrhu proto demonstrovány na operačních systémech a jejich komponentách Luděk Matýska (Fl MU) PB001: Uvod do informačních technologií podzim 2015 3 / 20 Návrh OS avri 'b - princípy • efektivita • robustnost • flexibilita • přenositelnost • kompatibilita • bezpečnost Luděk Matýska (Fl MU) PB001: Uvod do informačních technologií podzim 2015 4 / 20 Návrh OS Efekt i vita • 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: Uvod do informačních technologií podzim 2015 5 / 20 Návrh OS • Schopnost úspešne 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 • rozpoznání problému (výpadek nějaké komponenty) • návrh reakce a její implementace • nemusí garantovat plnou funkčnost/kapacitu • garantuje nezhroucení celého systému Luděk Matýska (Fl MU) PB001: Uvod do informačních technologií podzim 2015 6 / 20 ex Návrh OS • Možnost úpravy (adaptace) podle změněných potřeb - Adaptabilita • Příklad: výměna hw komponenty bez efektu na systém • změna parametrů (rychlejší disk s větší kapacitou), ale nikoliv změna principu • Často používána i 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) • Příklad: přidání dalšího procesoru, disku či grafické karty Luděk Matýska (Fl MU) PB001: Uvod do informačních technologií podzim 2015 7 / 20 Velmi významná pro operační systémy • V minulosti se OS dělal přím ona konkrétní hardware, nebylo jej kam přenášet • Revoluce": • OS/360 firmy IBM v 60. letech • UNIX (a jazyk C) v sedmdesátých letech (Multics) 9 IBM PC a MS Windows • Linux Dostatečná abstrakce detailů • 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: Uvod do informačních technologií podzim 2015 8 / 20 Návrh OS • Úzce souvisíš přenositelností • Odstínění specifických detailů • usnadňuje práci uživatelům OS (včetně programátorů) • Využití standardů o Efektivita? • Skrytí výkonových specifik • Je možné kompenzovat • Tlak na výrobce, ať nekomplikují" situaci • sjednocení architektury CPU • minimalizace variant GPU Luděk Matýska (Fl MU) PB001: Uvod do informačních technologií podzim 2015 9 / 20 Návrh OS 1 Bezpečnos1 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í • musíte se přihlásit • Klade dodatečná omezení na uživatele (disciplina) • bezpečnost není jen technický, ale především organizační úkol • Srovnání: MS Windows 95 versus MS Windows NT Luděk Matýska (Fl MU) PB001: Uvod do informačních technologií podzim 2015 10 / 20 Návrh OS Stejný (podobný) hw a různé priority a 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, Řešit různými operačními systémy nebo jedním dostatečně variabilním? Luděk Matýska (Fl MU) PB001: Uvod do informačních technologií podzim 2015 11 / 20 Klasifikace OS • Monolitický • Vrstvený • Modulární • Koncept kernelu a mikro-kernelu Luděk Matýska (Fl MU) PB001: Uvod do informačních technologií podzim 2015 12 / 20 • Původní operační systémy (proprietami) • Abstrakce nepoužívána příliš dovnitř • jedna skupina "opravdových programátorů" po celou dobu životnosti OS • 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: Uvod do informačních technologií podzim 2015 13 / 20 Klasifikace OS Vrs t ve it f OS • 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 • Komplikuje strukturu • Riziko obcházení (shortcuts) 9 Jistá penalizace ve výkonu Luděk Matýska (Fl MU) PB001: Uvod do informačních technologií podzim 2015 14 / 20 • Moduly namísto vrstev • Zapouzdření (enkapsulace) funkcí • Komunikace mezi moduly • blozitejsi na obejiti • Může mít vyšší režii (vyšší penalizace ve výkonu) • Příbuzný objektovému přístupu • Lepší údržba • Moduly menší, snáze se vyměňují než celé vrstvy • Riziko vzniku „fatware" • Příliš mnoho příliš malých modulů Luděk Matýska (Fl MU) PB001: Uvod do informačních technologií podzim 2015 15 / 20 Kernel operačního systému \ernei i operacnir 10 systému • Kernel, též jádro operačního systému: • Základní složka operačního systému • Odpovídá za: • Alokaci a správu zdrojů • Přímé ovládání hardware (nízkou rov nové 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: Uvod do informačních technologií podzim 2015 16 / 20 Kernel operačního systému Aplikační programová rozhraní • 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 9 Snadná správa kódu • Další použití • 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: Uvod do informačních technologií podzim 2015 17 / 20 Kernel operačního systému • Práce se soubory: • Otevření: int open(char *path, int of lag, ...) • Ctění: 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: Uvod do informačních technologií podzim 2015 18 / 20 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: Uvod do informačních technologií podzim 2015 19 / 20 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 o 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: Uvod do informačních technologií podzim 2015 20 / 20