Systémy souborů

Z FAV wiki
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Založena nová stránka: 1. Obsluha přerušení  Řadič vyvolá přerušení ve chvíli dokončení I/O požadavku  Ovladač zadá I/O požadavek, usne, po příchodu přerušení ho obsluh...)
 
(→I-uzly)
 
(Nejsou zobrazeny 4 mezilehlé verze od 2 uživatelů.)
Řádka 1: Řádka 1:
−
1. Obsluha přerušení
+
Téměř všechny aplikace potřebují trvale uchovávat data
−
 Řadič vyvolá přerušení ve chvíli dokončení I/O požadavku
+
−
 Ovladač zadá I/O požadavek, usne, po příchodu přerušení ho obsluha vzbudí
+
−
 Obsluha přerušení je časově kritická, musí být co nejkratší
+
  
−
2. Ovladače zařízení
+
Hlavní požadavky:
−
 Ovladače obsahují veškerý kód závislý na I/O zařízení, jediný zná HW podrobnosti
+
* Možnost uložit velké množství dat
−
 Ovladači předán příkaz vyšší vrstvou; pokud ještě obsluhuje předchozí požadavek, zařadí nový požadavek do fronty; zadá příkazy řadiči; zablokuje se do vykonání požadavku; po dokončení zkontroluje, zda nenastala chyba; předá výsledek vyšší vrstvě; spustí další požadavek
+
* informace musí zůstat zachována i po ukončení procesu
 +
* data musejí být přístupná více procesům
  
−
3. SW vrstva OS nezávislá na zařízení
+
při přístupu k zařízení mají všechny procesy společné problémy
−
 Poskytuje I/O funkce společně pro všechna zařízení daného druhu
+
* alokace prostoru na disku
−
 Definuje rozhraní s ovladači
+
* pojmenování dat
−
 Poskytuje jednotné rozhraní uživatelskému SW
+
* ochrana dat před neoprávněným přístupem
 +
* zotavení po havárii
  
−
4. I/O SW v uživatelském režimu
+
souborový systém:
−
 Programátor používá v programech I/O funkce nebo příkazy jazyka
+
* konvence pro ukládání a přístup k souborům
−
 Spooling = způsob obsluhy vyhrazených I/O v multiprogramovém systému
+
* část OS, která poskytuje mechanismus pro ukládání a přístup k datům
  
 +
uživatelské rozhraní:
 +
* konvence pro pojmenování souborů
 +
* typy souborů
 +
* způsob přístupu
 +
* atributy a přístupová práva
 +
* služby OS pro práci se soubory
  
−
RAID 0
+
Windows: NTFS, FAT12, FAT16, FAT32, ISO 9660 (CD-ROM)
−
{ není redundantní
+
−
{ ztrata 1 disku { ztrata celeho pole
+
−
{ duvod pouziti { vykon napr. strih videa
+
−
RAID 1 mirroring
+
−
{ zrcadleni na 2 disky stejnych kapacit
+
−
{ totozne informace
+
−
{ vypadek 1 disku { nevadi
+
−
{ jednoducha implementace { casto ciste sw
+
−
{ nevyhoda { vyuzijeme jen polovinu kapacity zapis { pomalejsi (2x) cteni { rychlejsi (radic - lze stridat pozadavky mezi disky)
+
−
RAID 5
+
−
{ redundantni pole s distribuovanou paritou
+
−
{ minimialne 3 disky
+
−
{ rezie: 1 disk z pole n disku, pr. 5 disku 100GB, 400GB pro data
+
−
{ vypadek 1 disku nevadi cteni { vykon ok zapis { pomalejsi 1 zapis { cteni starych dat, cteni stare parity, vypocet nove parity, zapis novych dat, zapis nove parity
+
−
RAID 6
+
−
{ RAID 5 + navic dalsi paritni disk
+
−
{ odolne proti vypadku dvou disku
+
−
{ rekonstrukce pole pri vypadku { trva dlouho po dobu rekonstrukce neni pole chraneno proti vypadku dalsiho disku, narocna cinnost { muze se objevit dalsi chyba, radic disk odpoji a ...
+
−
RAID 10
+
−
{ kombinace RAID 0 (stripe) a RAID 1 (zrcadlo)
+
−
{ min. pocet disku 4 rezie 100% diskove kapacity navic
+
−
{ nejvyssi vykon v bezpecnych typech polich podstatne rychlejsi nez RAID 5, pri zapisu odolnost proti ztrate az 50% disku x RAID 5
+
  
−
Funkce ovladače zařízení
+
Linux: ext2, ext3, ReiserFS, JFS, XFS, FAT12 až 32, ISO 9660, Minix, VxFS, OS/2 HPFS, SysV fs, UFS, NTFS read-only
−
· ovladači předán příkaz vyšší vrstvou
+
 
−
· požadavek zařazen do fronty (může ještě obsluhovat předchozí)
+
* soubor – pojmenovaná množina záznamů, které lze zpracovávat jako celek
−
· ovladač zadá příkazy řadiči (přijde na řadu), např. nastavení hlavy, přečtení sektoru
+
* záznam – strukturovaný datový objekt tvořený konečným počtem pojmenovaných položek
−
· zablokuje se do vykonání požadavku (neblokuje při rychlých operacích, např. zápis do registru)
+
 
−
· vzbuzení obsluhou přerušení (dokončení operace) - zkontroluje, zda nenastala chyba
+
 
−
· pokud OK, předá výsledek (status + data) vyšší vrstvě
+
atributy - informace sdružené se souborem, liší se podle jednotlivých OS / FS
 +
* příznaky (hidden, archive, temporary, read-only...)
 +
* velikost, datum vytvoření, poslední modifikace...
 +
 
 +
Veškeré I/O jsou dnes (díky UNIXu) prováděny jako práce se soubory - interní struktura souboru OS nezajímá, adresář je také soubor
 +
 
 +
Základní operace pro práci se soubory
 +
* otevření
 +
* vytvoření
 +
* čtení
 +
* zápis
 +
* nastavení pozice v souboru
 +
* zavření souboru
 +
 
 +
 
 +
== Virtuální FS ==
 +
 
 +
[[Soubor:Fs.png]]
 +
 
 +
Kód společný pro všechny typy FS, volán aplikacemi, udržuje informaci o otevřeném souboru, ověřuje přístupová práva.
 +
 
 +
 
 +
Typy FS
 +
* kontunuální alokace (jen u read-only médií - např CD)
 +
* seznam diskových bloků (blok obsahuje data a odkaz na další blok)
 +
* FAT
 +
 
 +
 
 +
 
 +
== FAT ==
 +
 
 +
 
 +
Implementace:
 +
* Každému bloku odpovídá jedna položka v tabulce FAT
 +
* Položka FAT obsahuje číslo dalšího bloku souboru
 +
* Řetězec odkazů je ukončen speciální značkou, která není platným číslem bloku (-1)
 +
 +
[[Soubor:Fat.jpg]]
 +
 
 +
Nevýhodou FAT je velikost tabulky (80 GB disk, bloky 4 kB => 20 mil položek, každá položka alespoň 3 byty => 60 MB FAT)
 +
 
 +
* FAT 12 - 12 bitů, 2<sup>12</sup> = 4096 bloků, diskety
 +
* FAT 16 - 16 bitů, 2<sup>16</sup> = 65536 bloků
 +
* FAT 32 - 2<sup>28</sup> bloků, blok 4-32KB, cca 8TB
 +
 
 +
 
 +
 
 +
== I-uzly ==
 +
 
 +
S každým souborem sdružená datová struktura i-uzel. I-uzel obsahuje atributy souboru, diskové adresy prvních N bloků a jeden nebo více odkazů na diskové bloky obsahující další diskové adresy. Tradiční FS pro Linux a UNIX
 +
 
 +
 +
[[Soubor:I-uzly.jpg]]
 +
 
 +
Výhoda: Po otevření souboru můžeme zavést i-uzel a případný blok obsahující další adresy do paměti => urychlí přístup k souboru
 +
 
 +
Implementace adresářů: tabulka obsahující jméno souboru a číslo jeho i-uzlu.
 +
 
 +
Info o volných blocích = seznam, jeho začátek je v superbloku na začátku partition
 +
 
 +
Adresáře - většinou se jedná o speciální typ souboru
 +
 
 +
Info o volných blocích v paměti - bitová mapa
 +
 
 +
{{fav-kiv-bzinf}}
 +
 
 +
 
 +
[[Kategorie:fav-kiv-bzinf]]

Aktuální verze z 3. 6. 2017, 19:37

Téměř všechny aplikace potřebují trvale uchovávat data

Hlavní požadavky:

při přístupu k zařízení mají všechny procesy společné problémy

souborový systém:

uživatelské rozhraní:

Windows: NTFS, FAT12, FAT16, FAT32, ISO 9660 (CD-ROM)

Linux: ext2, ext3, ReiserFS, JFS, XFS, FAT12 až 32, ISO 9660, Minix, VxFS, OS/2 HPFS, SysV fs, UFS, NTFS read-only


atributy - informace sdružené se souborem, liší se podle jednotlivých OS / FS

Veškeré I/O jsou dnes (díky UNIXu) prováděny jako práce se soubory - interní struktura souboru OS nezajímá, adresář je také soubor

Základní operace pro práci se soubory


[editovat] Virtuální FS

Fs.png

Kód společný pro všechny typy FS, volán aplikacemi, udržuje informaci o otevřeném souboru, ověřuje přístupová práva.


Typy FS


[editovat] FAT

Implementace:

Fat.jpg

Nevýhodou FAT je velikost tabulky (80 GB disk, bloky 4 kB => 20 mil položek, každá položka alespoň 3 byty => 60 MB FAT)


[editovat] I-uzly

S každým souborem sdružená datová struktura i-uzel. I-uzel obsahuje atributy souboru, diskové adresy prvních N bloků a jeden nebo více odkazů na diskové bloky obsahující další diskové adresy. Tradiční FS pro Linux a UNIX


I-uzly.jpg

Výhoda: Po otevření souboru můžeme zavést i-uzel a případný blok obsahující další adresy do paměti => urychlí přístup k souboru

Implementace adresářů: tabulka obsahující jméno souboru a číslo jeho i-uzlu.

Info o volných blocích = seznam, jeho začátek je v superbloku na začátku partition

Adresáře - většinou se jedná o speciální typ souboru

Info o volných blocích v paměti - bitová mapa


Osobní nástroje
Jmenné prostory
Varianty
Akce
Navigace
Nástroje