Pi Principy i počítačů čů SOUBOROVÝ SUBSYSTÉM
požadavky perzistentní uchovávání dat zvětšení pracovního objemu při zpracování dat dostupnost různými procesy
Soubor abstrakce, která umožňuje uložit informace a později je přečíst, aniž by uživatel znal podrobnosti (způsob uložení na disku/pásku, přístup, protokoly ) pojmenovaná množina souvisejících informací pojmenovaná množina souvisejících informací, uložená v pomocné paměti
Vlastnosti souboru jméno atributy typ struktura způsoby ů přístupu definované operace
Jmenné konvence umožňují přístup k datům i lidem pravidla stanovena OS výběr podmnožiny znakové sady velká / malá písmena národní abecedy speciální znaky délka 8.3 / konstanta / neomezené / struktura přípony a jejich význam
Atributy definují vlastnosti a informace o souboru detaily stanovuje OS jméno typ velikost čas vytvoření / změny / vlastník, ochrana umístění některé FS umožňují i dodatečně přidané atributy
Typy souborů idea: všechna externí data jsou soubory běžné soubory s daty adresáře vytvářejí strukturu souborového systému speciální soubory soft link I/O P OS í ět š t ů t čí b ěltě Pozn.: OS nemusí rozumět všem typům, stačí, aby rozuměl těm, které má spouštět jako program
Struktura souboru sekvence bytů význam definuje zpracovávající aplikace sekvence záznamů popsaná struktura jednotlivého záznamu strom záznamů umožňuje rychlé vyhledávání podle klíče
Způsob přístupu sekvenční pohyb pouze vpřed, někdy možný rewind umožňuje optimalizaci přístupu (přednačítání) přímý umožňuje změnu aktuální pozice čtení / zápisu paměťově mapovaný pojmenovaná virtuální paměť unifikace přístupu p k datům
Paměťově mapovaný soubor využití mechanismů virtuální paměti program k datům přistupuje stejně, jako k libovolným jiným datům uloženým v paměti úspora kopírování dat problémy skutečná velikost souboru zvětšování souboru management souboru bez segmentace fyzické čtení dat s externí paměti
Operace přesně definuje OS operace nad souborem jako celkem create / delete open / close get / set attributes přístup p k datům read / write (append) seek
očekávané vlastnosti FS spolehlivost (reliability) integrita dat rychlost dostupnost v systémech (systems versatility) další funkčnosti, komfort, Pozor: zabezpečení je věcí OS, nikoli FS
Adresáře a cesty zachycení a udržení organizační struktury souborů dnes obvykle hierarchický systém Cesta: pojmenování souboru v hierarchickém uspořádání aktuální adresář absolutní í/ relativní cesta od kořene / vzhledem k aktuálnímu adresáři
Adresář speciální typ souboru stejný přístup jako k souborům, jen má jiná data speciální struktura specifické funkce pro zpracování
Hierarchická struktura strom DAG obecný graf
Hierarchická struktura strom jednoznačné pojmenování každého souboru root B a C D b c d e f g
Hierarchická struktura DAG pojmenování není jednoznačné C/g B/D/g root B a C D b c d e f g
Hierarchická struktura obecný graf pojmenování není jednoznačné nejsou vyloučeny cykly problém při vyhledávání i správě q B root a C D b c d e f g
Odkaz / Link hard link odkaz na soubor z různých míst soft link speciální soubor, který obsahuje jméno souboru
Implementace správa souborů kde jsou umístěna data? správa adresářů převod jméno identifikace? správa prostoru kde je volné místo?
Umístění dat data typicky v blocích lépe odpovídá přístupu k externím médiím disky typicky yorganizovány ypo sektorech důležité rozhodnutí velikost bloků: malé menší vnitřní fragmentace větší režie, pomalejší práce velké velká vnitřní fragmentace menší režie, rychlejší práce
Alokace a správa místa souvislá alokace souvislý sled bloků informace o uložení souboru sestává pouze z čísla prvního bloku lepší práce s diskem problém při hledání volného místa problém při zvětšování souborů
Alokace a správa místa Spojovaná alokace pospojování bloků použitých pro soubor modifikace FAT přemístění spojového seznamu do speciální oblasti disku adresář 216 215 FREE END 213 FREE 212 213 213 214 214 215 216 215 FREE 217 216 FAT disk
Alokace a správa místa Indexová alokace UNIX a i-node ATTR 212 228 156
Správa volného místa podobně jako v paměti bitmapa (NTFS, HPFS, NetWare) spojový seznam (Unix, EXT)
Implementace adresářů Záznamy pevné velikosti FAT Spojový seznam delší jména pomalé hledání B-stromy rychlé hledání Win NT
NTFS V podstatě neomezená velikost systému (16 exab) V podstatě neomezený počet souborů Jména v UCS2 max. 255 znaků Libovolné atributy včetně přístupových p práv Vícenásobné streamy Sparse file díry ve streamech Šifrování - od NTFS 5 Komprese Automatická ti káfault tolerance žurnálování, á transakce Hard linky Symbolické linky od NTFS 5 Adresáře jsou soubory s B-stromem s odkazy na soubory
struktura NTFS volume Boot sector BIOS Parameter Block (BPB) bootstrap až 16 sektorů kopie na konci volume Master File Table (MFT)
Master File Table (MFT) Relační databáze Záznamy o všech souborech a o MFT samé name security descriptor attributes Velikost záznamu pevná, určena při formátování 1kB 4kB
MFT záznam o MFT
Malé soubory Přímo v záznamu MFT Všechny atributy v záznamu MFT - resident attributes
Větší soubory, fragmentace Více záznamů Base file record + Runs Virtual Cluster Number (VCN), mapování na Logical Cluster Number (LCN) v atributu Data Atributy mimo MFT nonresident attributes
VCN to LCN mapping 33
NTFS Metadata definice struktury filesystemu prvních 16 záznamů MFT 0 Master File Table (MFT) $Mft - Base file record pro každý soubor volume 1 Master File Table 2 $MftMirr - kopie prvních 4 záznamů 2 Log File $LogFile - transakční historie 3 Volume $Volume - volume data - version, label 4 Attribute Definitions $AttrDef - attribute name, number, description 5 Root file name index $ - root directory 6 Cluster bitmap $Bitmap - Clusters-in-use 7 Partition i boot sector $Boot - bootstrap na bootovatelném volume 8 Bad cluster file $BadClus - mapa vadných clusterů 9 Security file $Secure - jednoznačné security deskriptory pro všechny soubory 10 Upcase table $Upcase - převod lowercase na upercase Unicode 11 NTFS extension file $Extend - rozšíření, např. reparse points, quotas,... 12-15 Reserved for future use
Disc quotas Omezení prostoru pro jednotlivé účty Při naplnění deny / warning per-volume, pre-user, per-group
Reparse points NTFS objekty, které drží speciální atributy v kombinaci s filtry umožňují přidat další funkčnost, např.: Encrypting File System Hierarchical Storage Management Directory Junctions Volume Mount Points
EXT2 / EXT3 Velikost systému 4TB Jména max. 255 znaků Rezervace volného místa pro roota Hard linky Symbolické linky Prealokace po 8 souvislých blocích při zápisu, zbytek vrácen při zavření Nezávislé žurnálování EXT3 Souborový systém rozumí transakci, ale nedělá žurnálování Několik transakcí je cachováno, a pak uloženo najednou do žurnálu jako složená transakce
EXT2/EXT3 struktura na disku
EXT2/EXT3 inode Inode reprezentuje data souboru jméno souboru a inode uloženo v adresáři Rezervované inode (první volný je 11) EXT2_BAD_INO seznam špatných bloků EXT2_ROOT_INO kořenový adresář Několik pevných atributů UID, GID, velikost, různé časy, počet odkazů 12 přímých odkazů na bloky Jeden nepřímý, jeden dvojitě- a jeden trojitě-nepřímý odkaz