FAKULTA INFORMATIKY Masarykova univerzita PB001: Uvod do informačních technologií Luděk Matýska (Eva Hladká) podzim 2019 Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 1/45 FAKULTA INFORMATIKY I Masarykova univerzita Obsah přednášky Klasifikace OS Kernel operačního systému Procesy Správa paměti Systém souborů Přerušení Problém časovaní Programové vybavení Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 2/45 Klasifikace OS FAKULTA INFORMATIKY Masarykova univerzita Klasifikace OS ■ Monolitický ■ Vrstvený ■ Modulární ■ Koncept kerneLu a mikro-kerneLu Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 3/45 Klasifikace OS FAKULTA INFORMATIKY Masarykova univerzita Monolický OS ■ 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 ■ yeLké", špatně rozšiřitelné, špatně udržovateLné ■ Poplatné době pomalejšího vývoje hardware a jeho vysoké ceny Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 4/45 Klasifikace OS FAKULTA INFORMATIKY I Masarykova univerzita Vrstvený 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) ■ Jistá penalizace ve výkonu Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 5/45 Klasifikace OS FAKULTA INFORMATIKY I Masarykova univerzita Modulární OS ■ ModuLy namísto vrstev ■ Zapouzdření (enkapsuLace) funkcí ■ Komunikace mezi moduly m SLozitejsi 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 (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 6/45 Kernel operačního systému FAKULTA INFORMATIKY Masarykova univerzita Kernel operačního 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ízkoúrovňové interfaces) ■ Bezpečnost ■ Mikrokernel: ■ Malé je pěkné Modulární přístup, malé moduly odpovídající za konkrétní operace Řada funkcí až v uživatelském prostoru ■ Vysoce flexibilní, upravení operačního systému podle potřeby Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 7/45 Kernel operačního systému FAKULTA INFORMATIKY I Masarykova univerzita Aplikační programová rozhraní (API) ■ 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í ■ 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 (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 8/45 Kernel operačního systému FAKULTA INFORMATIKY I Masarykova univerzita API - příklady ■ Práce se soubory: ■ Otevření: int open(char *path, int o'ag, ■ Čtení: int read(int ildes, char *buf, unsigned mbytes^) ■ Zápis: int write(int ildes, char *buf, unsigned mbytes^) ■ Zavření: int close(int ildes^) ■ Práce s pamětí: ■ Alokace paměti: void ^mallocCsizeJ: size) ■ Uvolnění paměti: void free(void *ptr) ■ Změna alokace: void *realloc(void *ptr, size_t size) Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 9/45 Kernel operačního systému FAKULTA INFORMATIKY I Masarykova univerzita Periferie z pohledu (modulárního) OS ■ 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í špecifických vlastností: přenositelnost versus efektivita ■ Ovladače na nejnižší úrovni (jnejblíž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 (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 10/45 Kernel operačního systému FAKULTA INFORMATIKY I Masarykova univerzita Periferie z pohledu (modulárního) OS 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 (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 11/45 Procesy FAKULTA INFORMATIKY Masarykova univerzita OS: Procesy ■ Proces je abstrakce průchodu programem ■ Sekvenční model: program = 1 proces ■ Paralelní model: program > 1 proces ■ Proces má internistov, charakterizovaný ■ programovým čítačem (program counter) ■ zásobníkem (volání funkcí a procedur) ■ vlastní pamětí pro data Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 12/45 Procesy FAKULTA INFORMATIKY Masarykova univerzita Typy procesů ■ Klasické (heavy-weight) procesy (napr. UNIX) ■ Všechna data privátní ■ Sdílen pouze program (read-only) ■ Lehké (Light-weight) procesy či Vlákna (threads) ■ Minimum vlastní paměti ■ Většina dat sdílena Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 13/45 Procesy FAKULTA INFORMATIKY Masarykova univerzita Procesy detailněji ■ Vytvoření procesu ■ f orkO a jeho varianty ■ Přesná kopie původního procesu ■ Rodič a potomek ■ První proces v OS vytvářen jinak (init v Unixu) ■ Stavy ■ Start/vytvoření, připraven (ready), běží (running), je blokován (čeká), skončil Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 14/45 Procesy FAKULTA INFORMATIKY I Masarykova univerzita Synchronizace - problém ■ Race condition: soupeření v čase ■ Proces P { Load RegistrA, X Load RegistrB, Y Add RegistrA, RegistrB Store RegistrA, X # X+=Y } ■ Dvě instance procesu P, používají stejná X a Y ■ Nedefinovatelné výsledky ■ Je-li na začátku X=Y=1, pak na konci může být X=2 nebo X=3 Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 15/45 Procesy FAKULTA INFORMATIKY Masarykova univerzita Synchronizace - řešení ■ Kritická sekce ■ Semafory: celočíselné proměnné (čitače) ■ Monitory: vyšší konstrukty programovacího jazyka Je možné semafor implementovat pomocí monitoru a naopak ■ Smrtelné objetí (deadlock) ■ Odstranění sdílených zdrojů: zasílání zpráv ■ Synchronizace na úrovni zasílání a přijímání zpráv ■ Buffery Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 16/45 Procesy FAKULTA INFORMATIKY I Masarykova univerzita Procesy - plánování ■ Sdílení (timesharing) ■ časové kvantum ■ přerušení ■ Prioritní ■ Statistické ■ Real-time ■ Plánovač (scheduler) Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 17/45 Správa paměti FAKULTA INFORMATIKY Masarykova univerzita Správa paměti ■ Dvě základní operace: ■ alokuj/přiděl pamět (velikost, vrací počáteční adresu) ■ dealokuj/uvolni pamět (velikost a počáteční adresa) ■ Většinou závislé (lze uvolnit jen přesně totéž, co jsme alokovali dříve) ■ Doplňková operace: změň rozsah alokované paměti (reallocate) ■ Organizace paměti ■ Čištění paměti (garbage collection) Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 18/45 Správa paměti FAKULTA INFORMATIKY Masarykova univerzita Správa paměti OS ■ VirtuaLizace paměti - nutno uvolnit fyzickou paměť ■ Swapping ■ Celých procesů ■ ,Pěr" v paměti ■ Stránkování ■ Segmentace Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 19/45 Správa paměti FAKULTA INFORMATIKY I Masarykova univerzita OS: paměť ■ Většina paměti nevyužita ■ Zpracování cyklu (zbytek programu) ■ Zpracování konkrétních dat (ostatní neaktivní) ■ Čekání na l/O ■ Virtualizace paměti ■ Data a programy na disku ■ Do paměti na zadost ■ Umožňuje ■ Každý program má ,jceLou" paměť ■ Program může adresovat více jak rozsah fyzické paměti ■ Ochrana paměti Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 20/45 Systém souborů FAKULTA INFORMATIKY Masarykova univerzita OS: Systém souborů ■ Základní funkce: ■ Vytvoření souboru v ■ Ctění a psaní z/do souboru ■ Odstranění (smazání) souboru ■ Spuštění souboru (soubor=program) ■ Podpora na úrovni operačního systému Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 21/45 Systém souborů FAKULTA INFORMATIKY I Masarykova univerzita Struktura systému souborů ■ Hierarchické systémy: ■ Kořen (root) ■ Adresáře jako speciální typ (meta)souboru: drží informace o souborech, nikoliv jejich vlastní data ■ Databázové systémy: ■ Soubory (jejich části resp. jejich metadata) jako položka v databázi ■ Bohatší množina operací ■ Složitější implementace Apache Hadoop má prvky databázového systému souborů ■ Hadoop Distributed File System ■ Soubory jsou rozděleny na části, které jsou distribuovány na prvky clusteru ■ Primární přístup k souborům přes nativní rozhraní HDFS Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 22/45 Systém souborů FAKULTA INFORMATIKY Masarykova univerzita Struktura souborů ■ Posloupnost bytů - vnitřní struktura pro OS neznáma ■ Posloupnost záznamů (records) ■ Strom - každý uzel má vlastní klíč ■ Výše uvedeny příklady struktury, ne všechny varianty Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 23/45 Systém souborů FAKULTA INFORMATIKY I Masarykova univerzita Typ a prístup ■ Typy souborů (v UNIXovém OS) ■ Řádné: běžné soubory ■ Adresáře: udržení hierarchické struktury ■ Speciální: přístup ke konkrétnímu zařízení (/dev/mouse, /dev/audio, /dev/lp); speciální /proč systém ■ Blokové: náhodný přístup na základní úrovni (/dev/hd, /dev/kmem) ■ Přístupové metody; příklady: ■ Sekvenční ■ Náhodný (random) ■ Indexsekvenční (není v běžném UNIXu) Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 24/45 Systém souborů FAKULTA INFORMATIKY I Masarykova univerzita Struktura na disku ■ Možné typy ■ Souvislé ■ souvislé posloupnost bloků (složitá alokace, plýtvání místem) ■ Provázaný seznam: ■ každý blok odkazuje na další (může růst, vyšší režie - pro ukazatel, složitý náhodný přístup) ■ Indexové: ■ Např. FAT (File Allocation Table) v MS DOSu ■ Tabulka pro všechny bloku na disku ■ Provázány odkazem na další blok daného souboru ■ inodes Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 25/45 Systém souborů FAKULTA INFORMATIKY Masarykova univerzita Struktura - inodes ■ Podobné indexové organizaci ■ Pevná délka tabulky pro každý soubor ■ Kratší soubory adresovány přímo ■ Pro delší soubory alokována další tabulka ■ Tabulky provázány hierarchicky (1., 2. a 3. úroveň) ■ Flexibilní, malá režie Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 26/45 Systém souborů FAKULTA INFORMATIKY Masarykova univerzita inodes Direct blocks Ext2-inodes Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 27/45 Systém souborů FAKULTA INFORMATIKY I Masarykova univerzita Systémy souborů se žurnálováním ■ Problém interní konzistence informací uvnitř systému souborů ■ co se stane při výpadku proudu či nečekaném zhroucení operačního systému ■ Riziko nekonzistentních dat při postupném zápisu ■ část dat nebo metadat není ještě zapsána ■ Klasické řešení: fsck ■ procházení všech datových struktur v systému souborů ■ nalezení a oprava nekonzistencí (zpravidla několik průchodů) ■ velmi pomalé pro velké systémy souborů ■ Alternativa: zapsat zvlášť prováděné změny a teprve poté je skutečně realizovat ■ úspěšný zápis všech dat a metadat vede ke smazání údajů journaled filé systém ■ V případě výpadku se použijí tato data na zajištění interní konzistence systému souborů Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 28/45 Systém souborů FAKULTA INFORMATIKY Masarykova univerzita Volné bloky ■ V tabulce ■ Bitový vektor ■ Provázaný seznam ■ Většinou zpracovávány podle FCFS (First Come First Served) Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 29/45 Systém souborů FAKULTA INFORMATIKY Masarykova univerzita Vyrovnávací paměť ■ Obecně přístup pro skrytí zpožděni '(Late nee) ■ Nejčastěji používané bLoky/soubory uloženy v paměti ■ Pouze pro čtení (snazší) nebo i pro zápis ■ Problém: konzistence při přístupech/zápisech zvíce míst ■ Základní typy ■ Write-through: okamžitě po zápisu i na disk ■ Write-back: až po určité době (30 s) Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 30/45 Přerušení FAKULTA INFORMATIKY Masarykova univerzita OS: Přerušení ■ Operační systémy obecně reagují na asynchronní události (events) ■ Přerušeni: mechanismus, jak přerušit vykonávanou práci na základě externí příčiny (nějaké události) Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 31/45 Přerušení FAKULTA INFORMATIKY Masarykova univerzita Význam přerušení ■ Podpora 1/0 ■ Problém v programovém vybavení ■ Neautorizovaný přístup ■ Nelegální instrukce nebo operandy ■ Požadavek počítačem řízeného systému ■ Zásah operátora ■ Výpadek hardware Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 32/45 Přerušení FAKULTA INFORMATIKY Masarykova univerzita Příklady ■ Přerušení od časovače (přepLánování procesů, muLtitaskin timeout,...) ■ Přerušení od periferie (klávesnice, myš,síťová karta,...) ■ Přerušení z procesoru (dělení nulou, chybná operace,...) Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 Přerušení FAKULTA INFORMATIKY Masarykova univerzita OS: Principy přerušení ■ Přerušíbéh aktuálního procesu ■ Nutno uložit stav ■ a zapamatovat místo návratu ■ Více zdrojů a příčin přerušení ■ Nutno rozlišit typy (příčinu) přerušení ■ Nutno zapamatovat zdroj přerušení Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 34/45 Přerušení FAKULTA INFORMATIKY Masarykova univerzita Obsluha přerušení ■ Obsluha přerušení realizována v kernelu ■ Zajištění serializace ■ Bezpečnost ■ Vyvolá tzv. přepnutí kontextu ■ Multitasking fakticky není možný bez podpory přerušení Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 35/45 Přerušení FAKULTA INFORMATIKY Masarykova univerzita Další vlastnosti ■ Maskování přerušení ■ dočasné a trvalé ■ možná ztráta přerušení/události ■ Priorita přerušení/obsluhy ■ Základní tři úrovně: ■ Nemaskovaná přerušení: vyšší priorita ■ Aktuálně zpracovávané přerušení ■ Maskovaná přerušení: nižší priorita Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 36/45 Přerušení FAKULTA INFORMATIKY Masarykova univerzita Polling ■ Polling = opakované dotazování (na stav/událost) ■ Možná alternativa pro některá přerušení ■ Zaměstnává procesor ■ Může zůstat v uživatelském prostoru ■ Příklad: neustálé dotazování se na zapsanou známku Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 37/45 Problém časování FAKULTA INFORMATIKY Masarykova univerzita OS: problém časování ■ Periferie výrazně pomalejší než procesor ■ Příklad ■ 1 GHz Pentium IV: 1.109 operací za sekundu ■ Běžný disk: 10 ms pro přečtení 1 byte ■ Poměr 1 : 10 000 000 ■ Stejné zpomalení člověka: 1 úhoz na klávesnici cca 20 dní. ■ Možné řešení: prokládání l/O a výpočtu ■ Spusť diskovou operaci Prováděj instrukce nad jinými daty (alespoň 1 M instrukci) Počkej na dokončeni ■ Příliš těžkopádné a složité Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 38/45 Problém časování FAKULTA INFORMATIKY I Masarykova univerzita OS časování: jiné řešení Proces 1 { Spusť diskovou operaci Počkej na dokončeni Zpracuj ziskaná data } Proces 2 { Nějaká jiná aplikace } ■ Přehlednější ■ OS musí ,přepínať mezi procesy (priorita) Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 39/45 Programové vybavení FAKULTA INFORMATIKY I Masarykova univerzita Programové vybavení - pohled dle použití ■ Operační systém ■ UNIX, Linux, OS/370, MS Windows,... ■ Programovací jazyky ■ C, Pascal, Ada, Occam, ML, Prolog, perl, python, Java,. ■ Podpůrné nástroje ■ debuggery, profilery,... ■ Aplikační programy Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 Programové vybavení FAKULTA INFORMATIKY Masarykova univerzita Programovací jazyky ■ Rozlišujeme ■ Styl ■ Míru abstrakce ■ JDialekť Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 41/45 Programové vybavení FAKULTA INFORMATIKY Masarykova univerzita Programovací jazyky - styl ■ Imperativní/Procedurální: C, Fortran, Pascal, PerL, Python ■ Objektově orientované: Java, C++, C# ■ DekLarativní/FunkcionáLní: ML, Lisp, MIRANDA, Erlang ■ DekLarativní/Logické: Prolog, GHC ■ S jediným prirazením: SISAL ■ Produkční systémy: OPS5 ■ Sémantické sítě: NETL ■ Neuronové sítě: SAIC ANSpec Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 42/45 Programové vybavení FAKULTA INFORMATIKY Masarykova univerzita Procedurální vs. deklarativní styl fac := 1; if n > 0 then for i:=l to n do fac := i*fac; fac(0) := 1; fac(n>0) := n*fac(n-l); fac(0,l). fac(N,Fl*N) :- fac(N-l,Fl). Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 43/45 Programové vybavení FAKULTA INFORMATIKY I Masarykova univerzita Programovací jazyky - míra abstrakce ■ Strojový jazyk: přímo kódy jednotlivých instrukcí ■ Assembler: jména instrukcí, operandy, pojmenované cílové adresy skoků ■ Vyšší jazyky: obecné konstrukty, tvoří kontinuum" ■ Agregované datové typy ■ Cykly namísto skoků ■ Procedury a funkce ■ Procesy a vlákna Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 44/45 Programové vybavení FAKULTA INFORMATIKY Masarykova univerzita Programovací jazyky - implementace ■ Překladače ■ Zdrojový kód-mezijazyk-strojový jazyk ■ Překlad a sestavení Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 45/45 Programové vybavení FAKULTA INFORMATIKY I Masarykova univerzita Programovací jazyky - implementace ■ Překladače ■ Zdrojový kód-mezijazyk-strojový jazyk ■ Překlad a sestavení ■ Interprety ■ Abstraktní počítač ■ Vhodné pro složité operace (např. práce s texty, s maticemi a algebraickými objekty) Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 45/45 Programové vybavení FAKULTA INFORMATIKY Masarykova univerzita Programovací jazyky - implementace ■ Překladače ■ Zdrojový kód-mezijazyk-strojový jazyk ■ Překlad a sestavení ■ Interprety ■ Abstraktní počítač ■ Vhodné pro složité operace (např. práce s texty, s maticemi a algebraickými objekty) ■ Just-in-time překladače (nejen Java) ■ Známy již od osmdesátých let (řešil se tak nedostatek paměti) Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2019 45/45