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/40 FAKULTA INFORMATIKY I Masarykova univerzita Obsah přednášky Číselné soustavy Operační systémy Historie ÚčeL Základní sLožky Procesy Procesy - synchronizace a plánovaní Paměť Systém souborů Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2024 2/40 Číselné soustavy FAKULTA INFORMATIKY Masarykova univerzita Číselné soustavy ■ DLe základu: dvojková, osmičková, šestnáctková, desítková ■ VoLně mezi sebou převoditeLné (ceLá čísla bez ztráty přesnosti) ■ CeLá čísla a zlomky ■ ReáLná čísla ■ První počítač v desítkové soustavě ■ Konečné reprezentace Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2024 3/40 Číselné soustavy FAKULTA INFORMATIKY Masarykova univerzita Dvojková soustava ■ Základem je číslo dvě ■ pouze dvě číslice - dva stavy ■ vhodná pro reprezentaci v číslicových sytémech Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2024 4/40 Číselné soustavy FAKULTA INFORMATIKY I Masarykova univerzita Dvojková soustava v počítači ■ CeLá čís La ■ Záporná čísla ■ Přímý kód ■ Inverzní kód (binární negace) ■ Dvojkový doplňkový kód (binární negace + 1) ■ Pro reálná čísla ■ Rozlišitelnost (nejmenší zobrazitelné číslo): X + e > X aX + e/2 = X ■ Přesnost (rozsah) ■ Zobrazení: mantisa m a exponent e 0 ■ Přesnost zobrazení: počet bitů mantisy + 1 ■ Rozlišitelnost: nejmenší nenulové číslo ■ Normalizované vs. nenormalizované (2mkrát menší, m počet bitů mantisy) Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2024 11/40 Číselné soustavy FAKULTA INFORMATIKY Masarykova univerzita Jiné soustavy ■ Osmičková ■ 0011011011112 = 15578 = 879i0 v ■ Šestnáctková ■ 0011011011112 = 36F16 = 87910 ■ Používány především pro hutný zápis binárních čísel Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2024 12/40 Operační systémy FAKULTA INFORMATIKY I Masarykova univerzita OS jako příklad ■ Operační systém je veLmi komplikovaný programový produkt ■ Vývoj odráží změny v informačních technologiích ■ programovací jazyky ■ softwarové inženýrství ■ vývoj hardware (kvalita, kapacita,...) ■ 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 (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2024 13/40 Operační systémy Historie FAKULTA INFORMATIKY I Masarykova univerzita Operační systémy - trocha historie ■ Bootstrap Loader ■ Spooling ■ Nezávislé zavádění programu a jeho vykonávání ■ Vyžaduje DMA (Direct Memory Access) ■ Zavedlo multiprogramovdnľ ■ Stále zpracování dávek (batch processing) ■ Timesharing ■ Virtualizace počítače/CPU ■ Zpracování interaktivních úloh ■ Souvisí se zavedení disku (Direct Access Storage Device, DASD od IBM, 60tá léta) Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2024 14/40 Operační systémy Účel FAKULTA INFORMATIKY Masarykova univerzita Operační systémy: účel ■ Zkrasnéni: ■ Zjednodušení práce s počítačem ■ Práce s pamětí ■ Práce se soubory ■ Přístup k periferiím Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2024 15/40 Operační systémy Účel FAKULTA INFORMATIKY I Masarykova univerzita Operační systémy: účel Sd ilen ľ a sprava: m Zajistit sdílení (a správu) vzácných zdrojů ■ Musí zajistit: ■ Aby to vůbec fungovalo ■ Aby to fungovalo účinně (využití, propustnost, rychlost odezvy) ■ Aby to fungovalo správně ■ Omezení následků chyb (avšak pozor na chyby v samotném operačním systému) Oprávnění k prístupu (autentizace a autorizace) Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2024 16/40 Operační systémy Základní složky FAKULTA INFORMATIKY Masarykova univerzita OS: základní složky ■ Procesy a jejich správa ■ Paměť a její správa ■ Systém souborů ■ Periferie a jejich správa ■ Ochrana a bezpečnost Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2024 17/40 Operační systémy Základní složky FAKULTA INFORMATIKY Masarykova univerzita 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 2024 18/40 Operační systémy Základní složky FAKULTA INFORMATIKY Masarykova univerzita Typy procesů ■ Klasické (heawy-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 2024 19/40 Operační systémy Základní složky 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 2024 20/40 Operační systémy Základní složky FAKULTA INFORMATIKY Masarykova univerzita OS: Stavy procesu Process Status Diagram _ vvv^Jearncorriputerscienceonline.com_ Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2024 21/40 Operační systémy Základní složky FAKULTA INFORMATIKY Masarykova univerzita OS: Stavy procesu (s externí pamětí) Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2024 Operační systémy Základní složky 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ň l~milion 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 2024 23/40 Operační systémy Základní složky FAKULTA INFORMATIKY Masarykova univerzita OS časování: jiné řešení Proces 1 { Spusť diskovou operaci Počkej na dokončeni Zpracuj ziskaná data i Proces 2 { Nějaká jiná aplikace i ■ Přehlednější ■ OS musí přepínat" mezi procesy (priorita) Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2024 24/40 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 2024 25/40 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 2024 26/40 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 2024 27/40 Procesy - synchronizace a plánování 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í) v ■ Ceká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 2024 28/40 Procesy - synchronizace a plánování 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 2024 29/40 Procesy - synchronizace a plánování 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 2024 30/40 Procesy - synchronizace a plánování FAKULTA INFORMATIKY Masarykova univerzita OS: Systém souborů ■ Základní funkce: ■ Vytvoření souboru ■ Čtení 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 2024 31/40 Procesy - synchronizace a plánování 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 2024 32/40 Procesy - synchronizace a plánování 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 2024 33/40 Procesy - synchronizace a plánování 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 2024 34/40 Procesy - synchronizace a plánování 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 2024 35/40 Procesy - synchronizace a plánování 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 2024 36/40 Procesy - synchronizace a plánování FAKULTA INFORMATIKY Masarykova univerzita inodes Direct blocks Ext2-inodes Luděk Matýska (Eva Hladká) • PB001: Úvod do informačních technologií • podzim 2024 37/40 Procesy - synchronizace a plánování 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 2024 38/40 Procesy - synchronizace a plánování 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 2024 39/40 Procesy - synchronizace a plánování FAKULTA INFORMATIKY Masarykova univerzita Vyrovnávací paměť ■ 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 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 2024 40/40