PB001: Uvod do informačních technologií Luděk Matýska (Eva Hladká) Fakulta informatiky Masarykovy univerzity podzim 2017 INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Luděk Matýska (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 1/45 sa n preanasky O Klasifikace OS Q Kernel operačního systému Q Procesy Q Správa paměti Q Systém souborů Q Prerušení O Problé m časovaní Q Programové vybavení Luděk Matýska (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 2 / 45 Klasifikace OS • Monolitický • Vrstvený 9 Modulární • Koncept kernelu a mikro-kernelu Luděk Matýska (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 3 / 45 Klasifikace 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 „Velké", špatně rozšiřitelné, špatně udržovatelné Poplatné době pomalejšího vývoje hardware a jeho vysoké ceny Luděk Matýska (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 4 / 45 • Vrstvy odpovídají procesům správy: • Správa CPU • Správa paměti • Správa periferií 9 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á) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 5 / 45 Klasifikace OS • 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 (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 6 / 45 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 (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 7 / 45 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 (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 8 / 45 Kernel operačního systému • Práce se soubory: • Otevření: int open(char *patli, 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 (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 9 / 45 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 (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 10 / 45 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 (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 11 / 45 roces Procesy • Proces je abstrakce průchodu programem • Sekvenční model: program = 1 proces o Paralelní model: program > 1 proces • Proces má interní stav, charakterizovaný • programovým čitačem (program counter) • zásobníkem (volání funkcí a procedur) • vlastní pamětí pro data Luděk Matýska (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 12 / 45 ypy procesu Procesy • Klasické (heavy-weight) procesy (např. UNIX) 9 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á) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 13 / 45 rocesy detailněji Procesy • Vytvoření procesu • fork() 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á) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 14 / 45 Procesy 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á) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 15 / 45 yncnronizace - reseni Procesy • 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á) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 16 / 45 rocesy - plánovaní Procesy • Sdílení (timesharing) • časové kvantum • přerušení • Prioritní • Statistické • Real-time • Plánovač (scheduler) Luděk Matýska (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 17 / 45 pravá paměti Správa paměti • Dvě základní operace: • alokuj/přiděl paměť (velikost, vrací počáteční adresu) • dealokuj/uvolni paměť (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á) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 18 / 45 pravá paměti Správa paměti • Virtualizace paměti - nutno uvolnit fyzickou paměť • Swapping • Celých procesů • „Děr" v paměti • Stránkování • Segmentace Luděk Matýska (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 19 / 45 Správa paměti • Většina paměti nevyužita • Zpracování cyklu (zbytek programu) • Zpracování konkrétních dat (ostatní neaktivní) • Cekání na l/O • Virtualizace paměti • Data a programy na disku • Do paměti na žádost • Umožňuje • Každý program má „celou" paměť • Program může adresovat více jak rozsah fyzické paměti • Ochrana paměti Luděk Matýska (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 20 / 45 Systém souborů • Základní funkce: • Vytvoření souboru • 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á) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 21 / 45 Systém 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á) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 22 / 45 Systém souborů o 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á) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 23 / 45 Systém souborů E y p a prístup • Typy souborů (v UNIXovém OS) 9 Řá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á) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 24 / 45 Systém souborů 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á) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 25 / 45 Systém souborů • 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á) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 26 / 45 Systém souborů Luděk Matýska (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 27 / 45 Systém souborů 1 O w XI i é bystemy sou Doru se zurnaiovanim • 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ů • nalezenia 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 file 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á) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 28 / 45 Systém souborů • V tabulce 9 Bitový vektor • Provázaný seznam • Většinou zpracovávány podle FCFS (First Come First Served) Luděk Matýska (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 29 / 45 Systém souborů Vyrovnávací parně" 7 t • Obecně přístup pro skrytí zpoždění(latence) • 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 z ví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á) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 30 / 45 Přerušení Jreruseni • Operační systémy obecně reagují na asynchronní události (events) • Přerušení: 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á) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 31 / 45 Přerušení 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 o Výpadek hardware Luděk Matýska (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 32 / 45 a Přerušení • Přerušení od časovače (přeplánování procesů, multitasking 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á) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 33 / 45 rincipy prerušení 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á) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 34 / 45 Přerušení sluha přerušení a 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á) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 35 / 45 aisi vlastnosti Přerušení • Maskování přerušení o 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á) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 36 / 45 Přerušení • Polling = opakované dotazování (na stav/událost) • Možná alternativa pro některá přerušení • Zaměstnává procesor e 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á) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 37 / 45 • Periferie výrazně pomalejší než procesor • Příklad • 1GHz Pentium IV: 1.109 operací za sekundu • Běžný disk: 10 ms pro přečtení 1 byte o 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 instrukcí) Počkej na dokončení • Příliš těžkopádné a složité Luděk Matýska (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 38 / 45 Proces 1 { Spusť diskovou operaci Počkej na dokončení Zpracuj získaná data } Proces 2 { Nějaká jiná aplikace } • Přehlednější • OS musí „přepínat" mezi procesy (priorita) Luděk Matýska (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 39 / 45 Programové vybavení I rogramove vyDaveni - pol e pouzr o 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á) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 40 / 45 • Rozlišujeme • Styl • Míru abstrakce • „Dialekt" Luděk Matýska (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 41 / 45 Programové vy b; avenř Programovací jazyi Ky - sty • Imperativní/Procedurální: C, Fortran, Pascal, Perl, Python • Objektově orientované: Java, C++, C# o Deklarativní/Funkcionální: ML, Lisp, MIRANDA, Erlang • Deklarativní/Logické: Prolog, GHC • S jediným přiřazením: SISAL • Produkční systémy: OPS5 • Sémantické sítě: NETL o Neuronové sítě: SAIC ANSpec Luděk Matýska (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologii podzim 2017 42 / 45 Programové vybavení fac := 1; if n > 0 then for i:=l to n do fac := i*fac; fac(O) := 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á) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 43 / 45 Programové vybavení rogramovaci jazyky - mira aostrakce • 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á) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 44 / 45 Programové vybavení rogramovaci jazyky - implementace • Překladače • Zdrojový kód-mezijazyk-strojový jazyk • Překlad a sestavení Luděk Matýska (Eva Hladká) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 45 / 45 Programové vybavení rogramovaci jazyky - implementace • Překladače • Zdrojový kód-mezijazyk-strojový jazyk • Překlad a sestavení • Interprety o 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á) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 45 / 45 Programové vybavení rogramovaci jazyky - implementace • Překladače • Zdrojový kód-mezijazyk-strojový jazyk • Překlad a sestavení • Interprety o 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á) (Fl MU) PB001: Uvod do informačních technologií podzim 2017 45 / 45