FAKULTA INFORMATIKY Masarykova univerzita PB001: Uvod do informačních technologií Luděk Matýska (Eva Hladká) podzim 2022 Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2022 1/29 FAKULTA INFORMATIKY I Masarykova univerzita Obsah přednášky Procesy - synchronizace a plánovaní Správa paměti Klasifikace OS Kernel operačního systému Přerušení Programové vybavení Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2022 2/29 Procesy - synchronizace a plánování 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 2022 3/29 Procesy - synchronizace a plánování 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 2022 4/29 Procesy - synchronizace a plánování 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 2022 5/29 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 2022 6/29 Správa paměti FAKULTA INFORMATIKY Masarykova univerzita Správa paměti OS ■ VirtuaLizace paměti - nutno uvolnit fyzickou paměť ■ Swapping ■ Celých procesů ■ JDěr" v paměti ■ Stránkování ■ Segmentace Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2022 7/29 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 2022 8/29 Klasifikace OS FAKULTA INFORMATIKY I Masarykova univerzita Monolitický 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 2022 9/29 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 2022 10/29 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" ■ Príliš mnoho príliš malých modulů Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2022 11/29 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 2022 12/29 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 2022 13/29 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, v ■ Ctění: 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 ^mallocCsize-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á) • PB001: Úvod do informačních technologií • podzim 2022 14/29 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 2022 15/29 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 2022 16/29 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 2022 17/29 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 2022 18/29 Přerušení FAKULTA INFORMATIKY Masarykova univerzita Příklady ■ 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á) • PB001: Úvod do informačních technologií • podzim 2022 19/29 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 2022 20/29 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 2022 21/29 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 2022 22/29 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 2022 23/29 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 2022 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 2022 25/29 Programové vybavení FAKULTA INFORMATIKY Masarykova univerzita Programovací jazyky - styl ■ Imperativní/ProceduráLní: C, Fortran, Pascal, PerL, Python ■ Objektově orientované: Java, C++, C#, .NET ■ 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 2022 26/29 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 2022 27/29 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 2022 28/29 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 2022 29/29 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 2022 29/29 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 2022 29/29