Principy operačních systémů Lekce 7: Souborový systém
Souborový systém Souborový systém (anglicky file system) je označení pro způsob organizace dat ve formě souborů (a většinou i adresářů) tak, aby k nim bylo možné snadno přistupovat. Souborové systémy jsou uloženy na vhodném typu elektronické paměti, která je umístěna přímo v počítači (pevný disk nebo CD, ) nebo může být zpřístupněna pomocí počítačové sítě (NFS, SMB, Apple Talk, ). Lekce 7: Souborový systém 2
Účel souborového systému Údaje v elektronické paměti jsou přístupné v podstatě jako vektor dvojkových čísel. Přitom různé oblasti tohoto vektoru mohou být v závislosti na typu a okamžitém stavu paměti různě rychle dostupné. Například harddisk nebo CD-mechanika potřebuje určitý čas na přesun hlavičky na jinou stopu a než se pod hlavičku dostane oblast s požadovanými daty. Souborový systém zajišťuje ukládání a čtení dat paměťového média tak, aby s nimi uživatelé mohli pracovat ve formě souborů a adresářů. Základní ideou souborového systému je tedy zpřístupnění a ukládání dat pomocí hierarchicky organizovaného systému adresářů a souborů. Lekce 7: Souborový systém 3
Účel souborového systému Základním pravidlem každého souborového systému je, že data musí být jednoznačně určena svým jménem. Z toho vyplývá, že dva soubory nebo podadresáře umístěné ve stejném adresáři nesmí mít stejné jméno. Souborový systém zaznamenává kromě jména souboru a jeho umístění v hierarchii adresářů další informace sloužící pro správu souborů např. časové známky (nejdůležitější je čas poslední změny). informace o vlastnících souborů a přístupových právech. Lekce 7: Souborový systém 4
Soubor Soubor označuje pojmenovanou sadu dat uloženou na nějakém datovém médiu, se kterou lze pracovat nástroji operačního systému jako s jedním celkem. Obsahem souboru mohou být různá data: Jednoduché soubory s jedním druhem dat (textový dokument, obrázek, program, zvukový záznam) Složené soubory, obsahující množství dílčích souborů a objektů (archívní soubory, knihovny, ISO obrazy disků, kancelářské dokumenty s vloženými objakty apod.) Lekce 7: Souborový systém 5
Textový a binární soubor Podle toho, jak má být obsah souboru interpretován lze soubory rozdělit na textové a binární Textový soubor je soubor, ve kterém jednotlivé byty, dvojice bytů nebo posloupnosti bytů mají význam znaků (např. text, formátovaný text, hypertext, CSV soubor s daty) Binární soubor je soubor, který obsahuje jakákoliv data, která jsou následně zpracovávána počítačovým programem. Obsahem souboru jsou čísla v binární soustavě (řetězec nul a jedniček), která reprezentují jistým způsobem uloženou informaci (zvuk, obrázek, video, ale i formátovaný text, databáze apod.) Při čtení binárního souboru je proto nutné vědět, jak uložená data interpretovat. Lekce 7: Souborový systém 6
OS zajišťuje pro soubor tyto služby: Vytvoření souboru s daným jménem Nastavení příznaků souboru Otevření souboru pro čtení, nebo modifikaci Čtení a modifikaci otevřeného souboru Uložení změn na paměťové médium Uzavření souboru a uložení případných provedených změn na paměťové médium Lekce 7: Souborový systém 7
Struktura dat v souboru: Lekce 7: Souborový systém 8
Atributy souboru jméno jedinečný název souboru (vzhledem k aktuálnímu adresáři) délka velikost v počtech bytů typ umožňuje odlišit typ obsažených dat, použitý program, speciální soubory (roura, soket, zařízení, ) apod. přístupová oprávnění kdo smí se souborem pracovat (čtení, zápis, ) pro uživatele a skupiny vlastník uživatel vlastnící soubor (též skupina) časové informace čas vytvoření čas posledního přístupu k souboru čas poslední změny v obsahu souboru čas poslední změny metadat souboru umístění vlastních dat typicky posloupnost alokačních jednotek Lekce 7: Souborový systém 9
Adresář (složka) Adresář (také složka) je organizační jednotka v souborovém systému na datovém médiu. Adresář sdružuje na disku dokumenty (soubory) a další složky (podadresáře) a slouží k tomu, aby si je uživatel mohl logicky uspořádat. Adresáře tvoří na disku stromovou strukturu. Kvůli jednoznačnosti nemohou v jednom adresáři existovat dvě položky se shodným jménem (v tomto případě se nerozlišuje mezi souborem a adresářem). Lekce 7: Souborový systém 10
Adresář Množina datových položek uchovávajících informace o souborech uložených na diskovém oddílu Dvě pojetí pojmu adresář adresář souborového systému na diskovém oddílu (nemusí obsahovat jména souborů) uživatelsky dostupná struktura se jmény souborů a odkazy Položky adresářů obsahují atributy souborů Lekce 7: Souborový systém 11
Operace s adresáři Vyhledání souboru, poskytnutí seznamu souborů Vytvoření, zrušení či přejmenování souboru Procházení souborovým systémem (hierarchií adresářů Lekce 7: Souborový systém 12
Logická struktura adresářů efektivita: soubor je třeba najít rychle nezávislé pojmenovávání souborů 2 uživatelé mohou dát různým souborům totéž jméno 2 uživatelé mohou pojmenovat týž (sdílený) soubor různými jmény snadné seskupování dle nějaké logické příbuznosti struktury adresářů: stromy acyklické grafy B-stromy Lekce 7: Souborový systém 13
Stromová struktura adresářů Lekce 7: Souborový systém 14
Vlastnosti stromových adresářů Lekce 7: Souborový systém 15
Acyklické adresáře Lekce 7: Souborový systém 16
Acyklické adresáře Lekce 7: Souborový systém 17
Organizace systému souborů Lekce 7: Souborový systém 18
Organizace dat na disku Cluster (klastr, alokační jednotka) nejmenší logická datová jednotka na disku, která je tvořena několika bloky (viz. níže uvedený obrázek) Počet sektorů v clusteru souvisí s kapacitou disku. Čím větší je disk, tím větší bývá i velikost clusteru I když uložíme na disk soubor o velikosti jen 1 B, obsadíme tím ve skutečnosti celý cluster. Lekce 7: Souborový systém 19
Správa velkokapacitních paměťových zařízení Velkokapacitní záznamová zařízení uchovávají permanentně velké množství dat (na rozdíl od operační paměti) Disk má S sektorů, H hlav a T stop (cylindrů) Převod trojrozměrné adresy(s, h, t) na jednorozměrný prostor sektorů pomocí formule: Lekce 7: Souborový systém 20
Plánování disku Čas přístupu na disk je dělen na tři části: SEEK přesun hlavy na požadovaný cylindr LATENCY otočení disku na začátek požadovaného sektoru TRANSFER přesun dat z disku/na disk Při velkých zátěžích v OS s více procesy nejvíce zpomaluje přístup na disk čas SEEK. Lekce 7: Souborový systém 21
Obsluha požadavků na přístup k disku Při vyřizování požadavku OS na disk je potřeba nejprve vystavit hlavy na příslušnou stopu a pak počkat, až bude požadovaný sektor pod hlavami. U víceúlohových systémů mohou přicházet požadavky na disk rychleji, než je možné je vyřizovat. Vyřizování požadavků v pořadí, jak přicházejí (tzv. FIFO nebo FCFS -First In First Out, First Come First Serve), není optimální. Lekce 7: Souborový systém 22
Algoritmus FCFS (First Come First Served) Žádosti v pořadí: 98, 183, 37, 122, 14, 124, 65, 67 Hlavy jsou na pozici 53 Vhodný jen pro lehké zátěže Lekce 7: Souborový systém 23
Algoritmus SSTF (Shortest Seek Time First) Žádosti v pořadí: 98, 183, 37, 122, 14, 124, 65, 67 Hlavy jsou na pozici 53 Nejmenší relativní pohyb čtecí hlavy Někdy může vést k problému starvation (vyhladovění) Diskriminace okrajových cylindrů Lekce 7: Souborový systém 24
Algoritmus SCAN (elevátor) Žádosti v pořadí: 98, 183, 37, 122, 14, 124, 65, 67 Hlavy jsou na pozici 53 Je určen směr pohybu hlav. Z fronty jsou zpracovávány pouze požadavky postupně v určeném směru. Po zpracování nejkrajnějšího požadavku se směr pohybu hlav obrátí. Lekce 7: Souborový systém 25
Algoritmus C-SCAN (Circular Scan) Žádosti v pořadí: 98, 183, 37, 122, 14, 124, 65, 67 Hlavy jsou na pozici 53 Posouvá hlavy pouze v jednom směru Po zpracování nejkrajnějšího požadavku přesune hlavy opět na začátek. Lekce 7: Souborový systém 26
Principy operačních systémů Lekce 7a: Souborový systém - implementace
Připojování adresových struktur Souborový systém na (výměnném, dosud nedostupném) mediu se musí zpřístupnit připojit tzv. namontovat Připojuje se do udaného místa stávající adresářové struktury (Mount Point) Dosavadní podstrom odkazovaný z místa, kam se montuje, přestane být dostupný Lekce 7: Souborový systém 28
Základní operace se soubory Otevření souboru = open (fd) vyhledání záznamu o souboru pojmenovaném fd v adresářových strukturách na sekundární paměti a přesunutí tohoto záznamu do hlavní paměti do tabulky otevřených souborů Uzavření souboru = close (fd) přesunutí záznamu o souboru z tabulky otevřených souborů na sekundární paměť Práce s obsahem souboru write, read - tyto operace mění hodnotu ukazatele aktuální pozice v souboru, případně i obsah souboru seek změna pozice ukazatele v souboru Rušení souboru nebo jeho obsahu delete/remove zrušení souboru jako celku truncate výmaz celého nebo části obsahu, zachovají se atributy Lekce 7: Souborový systém 29
Přístupové metody = zpřístupňování záznamů v souboru Lekce 7: Souborový systém 30
Tabulky otevřených souborů Lekce 7: Souborový systém 31
Tabulky otevřených souborů Lekce 7: Souborový systém 32
Implementace souborových systémů Lekce 7: Souborový systém 33
Virtualizace souborového systému Lekce 7: Souborový systém 34
Implementace adresářů Lekce 7: Souborový systém 35
Přidělování diskového prostoru Lekce 7: Souborový systém 36
Přidělování souvislého diskového prostoru Lekce 7: Souborový systém 37
Vázané přidělování diskového prostoru Lekce 7: Souborový systém 38
Mapa disku a FAT Lekce 7: Souborový systém 39
Velikost alokačního bloku FAT Lekce 7: Souborový systém 40
Příklad FAT-32 - Windows Lekce 7: Souborový systém 41
Indexové přidělování bloků Lekce 7: Souborový systém 42
Správa volného prostoru disku Lekce 7: Souborový systém 43
NTFS = New Technology File Systém (Windows) (Master File Table) Lekce 7: Souborový systém 44
Systém souborů NTFS Lekce 7: Souborový systém 45
Systém souborů NTFS Lekce 7: Souborový systém 46
NTFS MFT a systémové soubory Lekce 7: Souborový systém 47
Porovnání NTFS a FAT Lekce 7: Souborový systém 48
Speciální soubory POSIX Lekce 7: Souborový systém 49
Pseudosoubory POSIX Lekce 7: Souborový systém 50