Metody alokace bloků diskového zařízení - eAMOS
Metody alokace bloků diskového zařízení - eAMOS
Metody alokace bloků diskového zařízení - eAMOS
Transform your PDFs into Flipbooks and boost your revenue!
Leverage SEO-optimized Flipbooks, powerful backlinks, and multimedia content to professionally showcase your products and significantly increase your reach.
Systém souborů<br />
1. <strong>Metody</strong> <strong>alokace</strong> <strong>bloků</strong> <strong>diskového</strong> <strong>zařízení</strong><br />
2. Sdílení složek a souboru více uživateli<br />
3. Obvyklé souborové systémy ve Windows a v Linuxu<br />
<strong>Metody</strong> <strong>alokace</strong> <strong>bloků</strong> <strong>diskového</strong> <strong>zařízení</strong><br />
• Blok: jednotka I/O přenosu mezi diskem a pamětí a představuje jeden nebo více diskových sektorů.<br />
• Tři hlavní metody <strong>alokace</strong>:<br />
Souvislá (contignous) <strong>alokace</strong><br />
• Každý soubor obsazuje sled za sebou jdoucích diskových <strong>bloků</strong> => adresování disku je tedy pak lineární.<br />
• Vždy, když se posouvá disková hlava, jde o posun o jednu stopu.<br />
• Počet nutných vyhledávání k alokování souboru je minimální.<br />
• Souvislá <strong>alokace</strong> podporuje jak sekvenční, tak i přímý přístup k souboru.<br />
• Souvislá <strong>alokace</strong> souboru je dána diskovou adresou prvního bloku a délkou soboru v blocích. Jestliže je soubor<br />
dlouhý n <strong>bloků</strong> a adresa prvního bloku je b, potom tento soubor zabírá bloky b, b + 1, b + 2, ..., b + n - 1.<br />
Adresářová položka každého souboru potom obsahuje adresu prvního bloku a délku prostoru alokovaného tomuto<br />
souboru<br />
• Operační systémy IBM, nebo ve starších OS u disket.<br />
Problémy:<br />
• Problém nalezení dostatečně velké souvislé oblasti k alokaci.<br />
• Značná vnější fragmentace disku (Jak se soubory mažou, kopírují a mění, tak se disk rozpadá do malých<br />
souvislých oblastí. Nakonec nebude možno najít žádnou dostatečně velkou souvislou oblast.) => Některé systémy<br />
prováděly realokaci, ale její časová náročnost byla dosti značná.<br />
• Při vytváření souboru nevíme předem jeho konečnou velikost (přidáváme do něj data)
Spojová (linked) <strong>alokace</strong><br />
• Tato metoda řeší všechny problémy souvislé <strong>alokace</strong>: Každý soubor je zde reprezentován spojovým seznamem<br />
diskových <strong>bloků</strong>, které mohou být rozmístěny kdekoliv na disku.<br />
• Každý blok ukazuje na ten následující. Každá adresářová položka ukazuje na první a poslední blok souboru.<br />
• Zápis způsobí prosté vložení položky do spojového seznamu a přepsání ukazatele. Čtení je pak jednoduché<br />
načítání <strong>bloků</strong> a tedy pohyb po spojovém seznamu.<br />
• Nedochází tu k žádné vnější fragmentaci, neboť k vyplnění žádosti o nový blok může být použit kterýkoli z<br />
volných. Není nutné deklarovat dopředu velikost souboru a není třeba provádět žádné zhušťování.<br />
Problémy:<br />
• Není vhodná pro přímý přístup k souborům. Další nevýhodou je neefektivní využití disku, protože část disku se<br />
využije pro ukládání ukazatelů.<br />
• Často se tento problém řeší tak, že se bloky seskupí do clusterů a alokují se clustery, nikoliv bloky. Cluster<br />
se pak nadefinuje, jako jednotka práce s diskem. Ukazatele pak zaberou mnohem méně místa na disku.<br />
Tato metoda však vede k nárůstu vnitřní fragmentace.<br />
• Dalším problémem je spolehlivost (Co se stane v případě, že je jeden ukazatel poškozen Můžeme zdvojit<br />
ukazatele, nebo uložit ještě další informace. To však vede k velké režii.)<br />
• Přijatelným řešením je užití tabulky <strong>alokace</strong> souboru (FAT: file-allocation table), jejíž další výhodou je<br />
možnost přistupovat k souborům přímo.
Indexová (indexed) <strong>alokace</strong><br />
• Sekvenční přístup k souboru.<br />
• Všechny ukazatele uloží do jednoho zvláštního bloku – bloku indexů.<br />
• Každý soubor má svůj vlastní indexový blok. I-tá položka v indexovém bloku ukazuje na i-tý blok<br />
souboru. Adresářová položka pak obsahuje adresu indexového bloku. Tato metoda podporuje tedy i přímý<br />
přístup k souborům.<br />
• Pravděpodobná interní fragmentace, protože diskový prostor pro indexový blok je většinou větší, než prostor<br />
potřebný pro ukazatele při spojové alokaci. Proto chceme, aby byl indexový blok co nejmenší.<br />
• V případě velkého souboru, který vyžaduje mnoho ukazatelů se dá postupovat následujícími způsoby:<br />
spojová struktura.<br />
➔ indexový blok je běžně jeden diskový blok.<br />
➔ pro umožnění existence velkých souborů je možno spojit několik diskových <strong>bloků</strong> dohromady.<br />
➔ indexový blik může obsahovat např. malou hlavičku, kde je zaznamenáno jméno souboru a pak následuje seznam<br />
prvních 100 ukazatelů na diskové bloky.<br />
➔ následující adresa (poslední slovo v indexovém bloku) je nil pro malý soubor nebo ukazatel na další indexový blok<br />
(u velkého souboru).<br />
víceúrovňový index<br />
➔ variantou spojové struktury je užít indexový blok pouze jako seznam odkazu na další indexové bloky, které potom<br />
ukazují na diskové bloky souboru.<br />
➔ při odkazu na nějaký blok souboru OS užije index první úrovně k tomu, aby nalezl index druhé úrovně, kde pak<br />
najde adresu požadovaného bloku dat.<br />
➔<br />
➔ tento přístup může potom pokračovat indexem trojúrovňovým, čtyřúrovňovým atd. podle toho, jak maximálně<br />
veliký soubor se může na disku objevit.<br />
kombinovaný přístup<br />
➔ Indexový blok (nebo inode) obsahuje řekněme 15 ukazatelů. Z nich prvních 12 ukazuje přímo na prvních 12 <strong>bloků</strong><br />
souboru.<br />
Z toho plyne, že malé soubory nepotřebují vlastní indexový blok a vystačí si s inodem. Inody všech souborů jsou uchovávány ve<br />
vyhrazené oblasti na disku.
Sdílení složek a souborů; více uživateli<br />
Microsoft<br />
Klasické MS sdílení<br />
FTP (File Transfer Protocol)<br />
Linux – Samba, NFS<br />
Obvyklé souborové systémy ve Windows a v Linuxu<br />
Souborový systém (anglicky filesystem) = označení pro způsob organizace dat ve formě souborů (a většinou i adresářů) tak,<br />
aby k nim bylo možné snadno přistupovat. Základní ideou souborového systému je tedy zpřístupnění a ukládání dat pomocí<br />
hierarchicky organizovaného systému adresářů a souborů. Souborové systémy jsou uloženy na vhodném typu elektronické<br />
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ě<br />
(NFS, SMB, AppleTalk…).<br />
Různé souborové systémy mohou mít různá omezení, například:<br />
• velikost paměťového média kterou je daný systém schopen pokrýt<br />
• délka souboru<br />
• délka jména souboru<br />
• počet zanořených podadresářů<br />
• podporovaná znaková sada<br />
OS (původní)<br />
Souborový systém<br />
QDOS<br />
FAT12<br />
MS-DOS v2<br />
FAT16<br />
Windows 95c<br />
FAT32<br />
Windows NT<br />
NTFS<br />
Linux<br />
ext2, ext3, ext4, reiserfs, reiser4<br />
CD-ROM iso9660 (9660)<br />
Pozn.: ext3, ext4, reiserfs, reiser4 a NTFS jsou žurnálovací systémy<br />
FAT12<br />
Princip systému FAT je velmi jednoduchý. V tabulce FAT (ze které je také odvozen název systému) je zaznamenáno<br />
umístění všech souborů na disku. Při požadavku na přečtení souboru je nejdříve v tabulce zjištěno fyzické umístění souboru<br />
na disku, a poté je soubor přečten.<br />
Do verze MS-DOS 4.0 bylo pro alokaci místa používáno pouze 12 bitů, což omezovalo velikost oddílu na 32 MB. Tento<br />
systém se používá pro jednotky FAT, které mají méně než 4096 clusterů (2 12 bitů). V současné době je nalezneme pouze na<br />
pružných discích.<br />
FAT16<br />
S rostoucí kapacitou pevných disků rostla i potřeba tyto kapacity účelně spravovat. Souborový systém FAT12 brzy narazil<br />
na meze svých možností, a proto bylo nutné provést změnu. Zvýšil se počet bitů určený pro adresaci. Nyní byl systém<br />
FAT16 schopen adresovat až 65536 clusterů (2 16 bitů). Libovolně velký disk je tedy při formátování rozdělen na maximálně<br />
65536 částí, velikost jedné části se pohybuje od 512 B do 32 kB (ve Windows NT 4.0 lze použít ještě 4 GB oddíl s velikostí<br />
clusteru 64 kB). S rostoucí kapacitou disku roste i podíl nevyužitého místa, protože i ten nejmenší soubor (např. o velikosti<br />
1 kB) zabere celý cluster, což v případě 32 kB clusteru znamená ztrátu 31 kB. Dalším problémem je fragmentace obsahu<br />
disku. Při zápisu souboru na disk je využito první volné místo bez ohledu na to, jestli jeho velikost dostačuje zápisu celého<br />
souboru. Často dochází k situaci, kdy jsou jednotlivé části jednoho souboru uloženy na různých místech disku. Během čtení<br />
takového souboru vznikají relativně dlouhé časové prodlevy nutné k mechanickému posunutí čtecích hlaviček z místa na<br />
místo. Pro tyto případy obsahují operační systémy nástroje pro defragmentaci, která provede opětovné seskupení<br />
jednotlivých částí na jedno místo.<br />
FAT32<br />
Další rozšíření systému FAT přinesl Service Pack 2 pro Windows 95 (OSR2). Nová verze vyřešila dva hlavní problémy<br />
FAT16. Za prvé používá 32 bitovou alokační tabulku, která umožňuje adresovat vyšší počet clusterů a tím posouvá hranici
maximální teoret. velikosti oddílu na 2 TB. Prakticky je díky omezení BIOSu velikost oddílu omezena přibližně na 8GB. Za<br />
druhé je zvýšením počtu clusterů možné zachovat jejich malou velikost i u velmi velkých disků. Do velikosti 8 GB je<br />
velikost clusteru 4 kB, což značně redukuje podíl nevyužitého místa. V neposlední řadě je systém FAT32 méně náchylný k<br />
selhání kritických částí souborového systému. FAT32 obsahují záložní kopii FAT tabulky pro případ poškození. Také<br />
spouštěcí záznam (boot record) doznal několika změn. Kořenová složka (root directory) je nyní standardní složka, omezení<br />
počtu záznamů je minulostí. Všechny tyto změny umožňují dynamicky měnit velikost oddílu. Tyto nové vlastnosti jsou sice<br />
velmi užitečné, ale ostatní nedostatky systému FAT však neodstraňují. Jedná se především o absenci komprese, šifrování a<br />
bezpečnostních vlastností složek a souborů na úrovni souborového systému.<br />
NTFS<br />
Systém NTFS používá pro alokaci clusterů 64 bitů. Počet adresovatelných jednotek je tedy 2 64<br />
(18 446 744 073 709 551 616), každá z nich může být až 4 kB velká. Jméno souboru nebo složky v systému NTFS může<br />
být složeno až z 255 znaků, díky kódování v 16 bitovém Unicode není problém se specifickými národními znaky. Filozofie<br />
systému NTFS je odlišná od filozofie FAT. Srdcem systému je jediný soubor zvaný Master File Table (MFT). Logicky je<br />
soubor MFT rozdělen tak, že pro každý soubor či složku je vyhrazen jeden řádek (v případě velkého souboru je použito<br />
několik řádků), kde je soubor nebo složka uložena. Záznam obsahuje i všechny ostatní atributy - jméno a typ souboru,<br />
bezpečnostní informace apod. Prvních 16 záznamů je systémových (pro uživatele systému zcela skrytých), ostatní záznamy<br />
jsou uživatelské. Systém NTFS má v sobě již zabudovánu kompresi, která se odehrává v reálném čase. Nevýhodou tohoto<br />
systému je, že je podporován pouze ve Windows NT (z čehož i název NT File System).<br />
Jak velké clustery (v kB)<br />
Velikost disku FAT16 FAT32<br />
512-1023 MB 16 4<br />
1024-2048 MB 32 4<br />
2-8 GB - 4<br />
8-16 GB - 8