FAKULTA INFORMATIKY Masarykova univerzita PB001: Uvod do informačních technologií Luděk Matýska (Eva Hladká) podzim 2024 Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2024 1/24 FAKULTA INFORMATIKY I Masarykova univerzita Obsah přednášky Přerušení Programové vybavení Klasifikace OS Kernel operačního systému Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2024 2/24 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 2024 3/24 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 2024 4/24 Přerušení FAKULTA INFORMATIKY Masarykova univerzita Příklady ■ Přerušení od časovače (pře p Lán ová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 2024 5/24 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 2024 6/24 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 2024 7/24 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 2024 8/24 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 2024 9/24 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 2024 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 2024 11/24 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 2024 12/24 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 2024 13/24 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 2024 14/24 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 2024 15/24 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 2024 15/24 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 2024 15/24 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 2024 16/24 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 2024 17/24 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 2024 18/24 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 2024 19/24 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 2024 20/24 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 2024 21/24 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 2024 22/24 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 2024 23/24 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 2024 24/24