09.09.2014 Views

Metody alokace bloků diskového zařízení - eAMOS

Metody alokace bloků diskového zařízení - eAMOS

Metody alokace bloků diskového zařízení - eAMOS

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!