[ 1 ] [ 2 ] [ 3 ]

Optimalizace souborového systému W9x

Souborový systém v W9x je typu FAT, není to žádný zázrak, spíše dinosaurus, ale přesto ho lze alespoň trochu přizpůsobit konkrétním potřebám a způsobům používání.


Systém souborů slouží k ukládání informací jak a kde jsou na pevném disku uloženy soubory, a jak jsou organizovány do adresářových struktur (adresář je také soubor). Základní adresovatelnou jednotkou pevného disku je tvz. sektor o velikosti 512B a celá kapacita disku je tvořena těmito po sobě logicky jdoucími sektory (přestože fyzicky jsou organizovány trojrozměrně plotna-stopa-sektory, ale to už je záležitost disku).
Sektory jsou ještě dále slučovány do větších jednotek zvaných cluster. Cluster je tvořen počtem sektorů dle 2n, kde n=0..5 (clustery 512, 1kB, 2kB, 4kB .. 32kB)

Jak funguje FAT16

Jak z názvu FAT (file alocation table - tabulkový alokační systém) vyplývá informace o systému souborů jsou uloženy v tabulce. Tabulka FAT16 má až 216=65556 16 bitových záznamů. Jejich význam z části uvádí tabulka.

FAT kód Význam
0000h volný Cluster
0002h-FFEFh použitý Cluster, číslo udává následující Cluster souboru
FFF0h-FFF6h reservovaný Cluster
FFF7h špatný Cluster
FFF8h-FFFF použitý Cluster, poslední v souboru

FAT16 funguje následovně: z hlavní struktury je vybrán soubor (jeho Cluster) a jeho velikost, přečtou se data z Clusteru a inf., kterém dalším Clusteru se nacházejí navazující data.
Data se čtou z celé plochy disku, ale inf. o poloze Clusterů z FAT tabulky na počátku disku. To je velmi neefektivní, disk musí přečtení každého clusteru přejet na počátek na FAT tabulku, aby věděl kde pokračovat (každý přesun raménkem disku je cca 10ms, na každý Cluster 2x). Pro zrychlení tohoto procesu se používá cachování FAT tabulky v hlavní paměti. Pod systémem DOS se o to staral program SMARTDRV.EXE, pod W9x je to součást systému, můžeme nastavit množství paměti pro cachování.

Velikost diskového oddílu je omezena 2^16 Clustery, a velikostí Clusteru 0,5kB až 32 kB. Dsikový oddíl FAT16 může mít velikost nejvýše 2 GB. U velkých disků disků se toto omezení řeší vytvořením více diskových diskových oddílů.

Velikost disk. oddílu sektorů velikost Clusteru
do 32 MB 1 512 B
do 64 MB 2 1 kB
do 128 MB 4 2 kB
do 256 MB 8 4 kB
do 512MB 16 8 kB
do 1 GB 32 16 kB
do 2 GB 64 32 kB

Je dobré si povšimnout, že se stoupající velikostí disku roste i minimální velikost malého souboru. Např. i soubor o velikosti 100 B zabere na 2 GB disku 32 kB skutečného místa (této neefektivně využité kapacitě se říká slack).
Maximální počet souborových záznamů je 216 (65520).


Jak funguje FAT32

Systém souborů FAT32 přináší kromě zvýšení počtu alokačních záznamů na 232=4G (nepoužívá se celý možný rozsah) a neomezenému počtu kořenových záznamů, ještě tu výhodu, že narozdíl od FAT16 se používají obě FAT tabulky (hlavní a záložní) a systém souborů je lépe zabezpečen proti nekonzistenci.
Další výhodou je možnost používat velké disky vcelku a velikost clusterů je menší než u FAT16, což přispívá k lepšímu využití diskové kapacity (viz slack).
Kromě toho lze i nastavit jak velké clustery se mají používat.

Výchozí velikost Clusterů v závislosti na velikost oddílu u FAT32

Velikost disk. oddílu sektorů velikost Clusteru
do 8 GB 8 4 kB
do 16 MB 16 8 kB
nad 16 GB * 32 16 kB

* toto mám ověřeno u disků do 30 GB (větší jsem v pařátech neměl) a starší verze Windows mohou mít i omezení s diskovými oddíly nad 32 GB (neověřeno)

Velikost clusteru je určena při formátování oddílu např.: format c:/s/z:16
Právě parametr /z: určuje počet sektorů na cluster a musí být mocninou při základu 2^n.

[ 1 ] [ 2 ] [ 3 ]