2010/2011 ZS
P i i počítačů Principy čít čů
SOUBOROVÝ SUBSYSTÉM
2010/2011 ZS
požadavky • perzistentní uchovávání dat • zvětšení pracovního objemu při zpracování dat • dostupnost různými procesy
2010/2011 ZS
Soubor • abstrakce, která umožňuje uložit informace a později je přečíst, aniž by uživatel znal p podrobnosti (způsob uložení na disku/pásku, přístup, protokoly …)
• pojmenovaná množina souvisejících informací informací, uložená v pomocné paměti
2010/2011 ZS
Vlastnosti souboru • • • •
jméno atributy typ struktura
• způsoby ů b přístupu ří t • definované operace p
2010/2011 ZS
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 délk • 8.3 / konstanta / neomezené / …
– struktura • přípony a jejich význam
2010/2011 ZS
Atributy • definují vlastnosti a informace o souboru • detaily stanovuje OS – – – – – – –
jjméno typ velikost čas vytvoření / změny / … vlastník ochrana vlastník, umístění …
• některé FS umožňují i dodatečně přidané atributy
2010/2011 ZS
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 Pozn.: OS nemusíí rozumět ět všem š typům, t ů stačí, t čí aby b rozuměl ěl těm, tě které má spouštět jako program
2010/2011 ZS
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 j rychlé y vyhledávání y podle p klíče
2010/2011 ZS
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
• p paměťově mapovaný p ý – „pojmenovaná virtuální paměť“ – unifikace nifikace příst přístupu p k datům
2010/2011 ZS
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 managementt souboru b bez b segmentace t fyzické čtení dat s externí paměti
2010/2011 ZS
Operace • přesně definuje OS • operace nad souborem jako celkem – create / delete – open / close – get / set attributes
• p přístupp k datům – read / write (append) – seek
2010/2011 ZS
očekávané vlastnosti FS • • • • •
spolehlivost (reliability) integrita dat rychlost dostupnost v systémech (systems versatility) další funkčnosti, komfort, …
• Pozor: zabezpečení p je j věcí OS, nikoli FS
2010/2011 ZS
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í b l t í / relativní l ti í cesta t • od kořene / vzhledem k aktuálnímu adresáři
2010/2011 ZS
Adresář • speciální typ souboru – stejný přístup jako k souborům, jen má jiná data
• speciální struktura – specifické funkce pro zpracování
2010/2011 ZS
Hierarchická struktura • strom • DAG • obecný graf
2010/2011 ZS
Hierarchická struktura – strom • jednoznačné pojmenování každého souboru root
e
B
a
C
D
b
c
d
f
g
2010/2011 ZS
Hierarchická struktura – DAG • pojmenování není jednoznačné • C/g ≡ B/D/g
root
e
B
a
C
D
b
c
d
f
g
2010/2011 ZS
Hierarchická struktura – obecný graf • pojmenování není jednoznačné • nejsou vyloučeny cykly – problém při vyhledávání i správě
e
q
root B
a
C
D
b
c
d
f
g
2010/2011 ZS
Odkaz / Link • hard link – odkaz na soubor z různých míst
• soft link – speciální soubor, který obsahuje jméno souboru
2010/2011 ZS
Implementace • správa souborů – kde jsou umístěna data?
• správa adresářů – převod jméno – identifikace?
• správa prostoru – kde jje volné místo?
2010/2011 ZS
Umístění dat • data typicky v blocích – lépe odpovídá přístupu k externím médiím
• disky y typicky yp y organizovány g y ppo sektorech • důležité rozhodnutí – velikost bloků: – malé • menší vnitřní fragmentace • větší režie, režie pomalejší práce
– velké • velká vnitřní fragmentace • menší režie, rychlejší práce
2010/2011 ZS
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ů
2010/2011 ZS
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
213
212
215 FREE END 213 FREE FAT
213
214
214 215
215
216 217
216
disk
2010/2011 ZS
Alokace a správa místa • Indexová alokace – UNIX a i-node ATTR 212 228 156
2010/2011 ZS
Správa volného místa • podobně jako v paměti – bitmapa (NTFS, HPFS, NetWare) – spojový seznam (Unix, EXT)
2010/2011 ZS
Implementace adresářů • Záznamy pevné velikosti – FAT
• Spojový seznam – delší jména – pomalé hledání
• B-stromyy – rychlé hledání – Win NT
2010/2011 ZS
NTFS • • • • • • • • • • • •
V podstatě neomezená velikost systému (16 exaB) V podstatě neomezený počet souborů Jména v UCS2 max. 255 znaků Libovolné atributyy – včetně ppřístupových p ý ppráv Vícenásobné streamy Sparse file – díry ve streamech Š Šifrování - od NTFS 5 Komprese A t Automatická ti ká fault f lt tolerance t l – žurnálování, ž ál á í transakce t k Hard linky Symbolické linky – od NTFS 5 Adresáře jsou soubory s B-stromem s odkazy na soubory
2010/2011 ZS
struktura NTFS volume • Boot sector – – – –
BIOS Parameter Block (BPB) bootstrap až 16 sektorů k i na konci kopie k i volume l
• Master File Table (MFT)
2010/2011 ZS
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 p pevná,, určena při p formátování – 1kB – 4kB
2010/2011 ZS
MFT záznam o MFT
2010/2011 ZS
Malé soubory • Přímo v záznamu MFT • Všechny atributy v záznamu MFT resident attributes attributes” - “resident
2010/2011 ZS
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”
2010/2011 ZS
VCN to LCN mapping
33
2010/2011 ZS
NTFS Metadata • definice struktury filesystemu • prvních 16 záznamů MFT 0 1 2 3
Master File Table (MFT) $Mft - Base file record pro každý soubor volume Master File Table 2 $MftMirr - kopie prvních 4 záznamů Log File $LogFile - transakční historie Volume $Volume - volume data - version, label
4 5 6 7 8 9 10 11 12-15
Attribute Definitions $AttrDef - attribute name, number, description Root file name index $ - root directory Cluster bitmap $Bitmap - Clusters-in-use P i i boot Partition b sector $Boot $B - bootstrap b na bootovatelném b l é volume l Bad cluster file $BadClus - mapa vadných clusterů Security file $Secure - jednoznačné security deskriptory pro všechny soubory Upcase table $Upcase - převod lowercase na upercase Unicode NTFS extension file $Extend - rozšíření, např. reparse points, quotas, ... Reserved for future use
2010/2011 ZS
Disc quotas • Omezení prostoru pro jednotlivé účty • Při naplnění – deny / warning • per-volume, per volume pre pre-user, user per-group per group
2010/2011 ZS
Reparse points • NTFS objekty, které drží speciální atributy • v kombinaci s filtry umožňují přidat další funkčnost např.: funkčnost, např : – – – –
Encrypting File System Hierarchical i hi l Storage Management Directory Junctions Volume Mount Points
2010/2011 ZS
EXT2 / EXT3 • • • • • •
Velikost systému 4TB J é max. 255 znaků Jména ků 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
2010/2011 ZS
EXT2/EXT3 – struktura na disku
2010/2011 ZS
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 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