320 likes | 426 Views
Základy operačních systémů. Souborové systémy Jakub Yaghob. Souborové systémy – 1. Proč? při běhu práce s omezeným množstvím informace v hlavní paměti ztráta informace při ukončení procesu sdílení informace mezi více procesy. Souborové systémy – 2.
E N D
Základy operačních systémů Souborové systémy Jakub Yaghob
Souborové systémy – 1 • Proč? • při běhu práce s omezeným množstvím informace v hlavní paměti • ztráta informace při ukončení procesu • sdílení informace mezi více procesy
Souborové systémy – 2 • Co potřebuji pro dlouhotrvající uložení informace? • Možnost uložit obrovské množství dat • Informace musí přežít ukončení procesu (persistence) • Více procesů najednou musí mít možnost přistupovat k datům současně
Soubory – 1 • Soubor je pojmenovaná množina souvisejících informací, která leží v pomocné paměti. • Soubor je abstrakce, která umožňuje uložit informaci na disk a později ji přečíst. Abstrakce odstiňuje uživatele od podrobností práce s disky.
Soubory – 2 • Soubory mají • jméno • atributy • strukturu • typ • Na souborech jsou definovány • druhy přístupu • operace
Pojmenování souborů • Umožňuje i prostému uživateli přístup k jeho datům • Přesná pravidla pojmenování určuje OS • malá x velká písmenka • speciální znaky • délka jména • přípony a jejich význam
Atributy souborů • Definují vlastnosti a uchovávají informace o souboru • Atributy opět určuje OS • jméno • typ • umístění • velikost • ochrana • čas vytvoření, zápisu • vlastník
Struktura souborů • Sekvence bajtů • Win, UNIX • Sekvence záznamů • Strom
Typy souborů • Běžné soubory • obsahují informace • Adresáře • systémové soubory vytvářející strukturu souborového systému • Speciální soubory • znakové/blokové • soft linky
Druhy přístupu k souborům • Sekvenční • pouze pohyb vpřed, možný rewind • umožňuje OS přednačítání • Přímý přístup • umožňuje měnit aktuální pozici • Paměťově mapované • využití stránkování
Paměťově mapované soubory • „Pojmenovaná“ virtuální paměť • Výhody • program přistupuje k souboru instrukcemi pro práci s pamětí • ušetří se kopírování pamětí • Problémy • přesná velikost souboru • zvětšování souboru • velikost souborů
Adresáře • Proč? • udržení organizační struktury souborů • uchovávání atributů souboru • Zvláštní typ souboru • Dnes typicky hierarchický systém • kořen • Operace nad adresáři • hledání souboru • vypsání adresáře • přejmenování, vytvoření, smazání souboru
Cesty • Pojmenování souboru v hierarchickém uspořádání • Aktuální adresář • vlastnost procesu • jména souborů, která nezačínají kořenem, se hledají vzhledem k aktuálnímu adresáři • Absolutní cesta • cesta v grafu od kořene k souboru • Relativní cesta • cesta z aktuálního adresáře k souboru • speciální pojmenování pro aktuální adresář a otce (např. . a ..)
Linky • Hard link • Na jedna data souboru se odkazuje z různých položek v adresářích • Soft link (symbolický link) • Speciální soubor, který obsahuje jméno souboru
Hierarchická struktura – strom • Jednoznačné pojmenování • /B/D/g
Hierarchická struktura – DAG • Víceznačné pojmenování • Nejsou cykly • /B/D/g nebo /C/g
Hierarchická struktura – obecný graf • Víceznačné pojmenování • Cykly vytváří problém při prohledávání • /B/D/g nebo/B/D/q/C/g
Implementace souborových systémů • Správa souborů • kde jsou umístěna data uložená v souboru • Správa adresářů • mapování jména na jeho binární identifikaci • uložení atributů • Správa volného místa • které bloky jsou ještě volné
Velikost bloku • Soubory se ukládají na disk po blocích • Disky jsou organizovány po sektorech • Velké bloky • rychlejší práce s diskem • nebezpečí velké vnitřní fragmentace • průměrná velikost souboru ≈1500B • Malé bloky • pomalejší práce s diskem • větší režie na udržení informace o volných blocích
Uložení souborů – 1 • 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ů
Uložení souborů – 2 • 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ář 213 212 216 213 215 214 214 FREE 215 END 215 216 213 217 FREE 216 FAT disk
Uložení souborů – 3 • Indexová alokace • UNIX a i-node ATTR 212 228 156
Implementace adresářů • Záznamy pevné velikosti • FAT • Spojový seznam • delší jména • pomalé hledání • B-stromy • rychlé hledání • Win NT
Volné místo na disku • Obdobně jako volné místo v paměti • Bitmapa • NTFS, HPFS, NetWare • Spojový seznam volných bloků • UNIX, EXT (ne EXT2)
NTFS – charakteristika • 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 práv • Vícenásobné streamy • Sparse file – díry ve streamech • Šifrování - od NTFS 5 • Komprese • Automatická fault tolerance – žurnálování, transakce • Hard linky • Symbolické linky – od NTFS 5 • Adresáře jsou soubory s B-stromem s odkazy na soubory
NTFS – MFT • Řídící struktury obsaženy ve speciálním souboru MFT (Master File Table) • MFT rozdělena na záznamy (1 KB) • Prvních 16 souborů je speciálních – metasoubory • $MFT – sama MFT • $MFTmirr – kopie prvních 16 záznamů MFT • $LogFile – žurnál • $AttrDef – seznam std. atributů souboru na systému • $Volume – informace o systému • $. – kořenový adresář • $Bitmap – bitmapa volného místa
NTFS – MFT záznam • Základní záznam obsahuje • Počet odkazů • Příznaky • Seznam atributů (včetně streamů) – jméno, typ, data • „Data“ souboru jsou taky stream s názvem :$data • Přístup ke streamu je soubor:stream • Data rezidentní – přímo v MFT • Data nerezidentní – run list • Pokud pro popis dat nebo seznamu atributů nestačí základní záznam, tak se připojí další záznamy
NTFS – run list • VCN – virtual cluster number • Od začátku souboru • LCN – logical cluster number • Od začátku systému • Jeden run • Velikost runu, VCN, LCN, odkaz na další run
EXT2/EXT3 – charakteristika • 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 – inode • 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