Procházet otázky :: SZZ na MFF UK

#

- Hlavní strana
- Okruhy
- Projít
- Stáhnout
- Co je potřeba
- Chci přispět
- Kredity

Hledat:

## Prohlížení státnicových textů

## Systémy souborů, adresářové struktury

Definice (soubor)

Soubor je pojmenovaná množina souvisejících informací, která leží v pomocné paměti (na disku).
Soubor je abstrakce, která umožňuje uložit informaci na disk a později ji přečíst. Abstrakce odstiňuje uživatele od podrobností práce s disky.

Soubory

- pojmenování souboru (umožňuje uživateli přístup k jeho datům; přesná pravidla pojmenování určuje OS - malá vs. velká písmenka, speciální znaky, délka jména, přípony a jejich význam)
- atributy souborů (opět určuje OS) - jméno, typ, umístění, velikost, ochrana, časy, vlastník, ...
- struktura souborů - sekvence bajtů / sekvence záznamů / strom
- typy souborů - běžné soubory, adresáře (systémové soubory vytvářející strukturu souborového systému), speciální soubory (znakové/blokové, soft linky)
- přístup
  - sekvenční - pohyb pouze vpřed, OS může přednačítat
  - náhodný - možno měnit aktuální pozici
  - paměťově mapované soubory - pojmenovaná virtuální paměť, práce se souborem instrukcemi pro práci s pamětí, ušetří se kopírování pamětí; mají i problémy (přesná velikost souboru, zvětšování souboru, velikost souborů)
- volné místo na disku - bitmapa / spojový seznam volných bloků

Uložení souborů

Soubory se ukládají na disk po blocích

- souvislá alokace - souvislý sled bloků
- spojovaná alokace - blok odkazuje na další
- indexová alokace - inode (UNIX)

Adresáře

- zvláštní typ souboru
- operace nad adresáři - hledání souboru / vypsání adresáře / přejmenování, vytvoření, smazání souboru
- kořen, aktuální adresář, absolutní/relativní cesta
- hierarchická struktura
  - strom - jednoznačné pojmenování (cesta)
  - DAG - víceznačné pojmenování, ale nejsou cykly
  - obecný graf - cykly vytváří problém při prohledávání
- implementace adresářů - záznamy pevné velikosti, spojový seznam, B-stromy

Co musí filesystém umět?

musí splňovat 3 věci: správu souborů (kde jsou, jak velké), správu adresářů (převod jméno id) (někdy to dělá jiný prostředek, dnes větš. umí FS sám), správu volného místa. někdy mohou být i další (odolnost proti výpadkům)

Velikost bloků - blok = nejmenší jednotka pro práci s diskem; disk pracuje s min. 1 sektorem (typicky 512 B) - někdy by pak bylo moc bloků OS sdruží několik sektorů lineáně vedle sebe = 1 blok. velikost: velké = rychlejší práce, ale vnitřní fragmentace (průměrný soubor má cca pár KB), malé = malá vnitřní fragmentace, větší režie na info o volném místě/ umístění souboru (zabírá víc bloků!), navíc fragmentace souborů zpomalení. dnes má blok cca 2-4KB.

Linky

- Hard link - Na jedna data souboru se odkazuje z různých položek v adresářích
- Soft link - Speciální soubor, který obsahuje jméno souboru

Příklady

- FAT - `http://en.wikipedia.org/wiki/File_Allocation_Table`
- NTFS - charakteristika, MFT (Master File Table), run list
  `http://www.digit-life.com/articles/ntfs/`
  `http://www.pcguide.com/ref/hdd/file/ntfs/archSector-c.html`
- ext2/ext3 - struktura, inode, žurnál
  `http://www.science.unitn.it/~fiorella/guidelinux/tlk/node95.html`
  `http://www.linux-security.cn/ebooks/ulk3-html/0596005652/understandlk-CHP-18.html`

Plánování pohybu hlav disků

- FCFS (First-Come, First-Served) - žádné plánování, fronta požadavků, jeden za druhým
- SSTF (Shortest Seek Time First) - krajní žádosti mohou "hladovět"
- LOOK (výtah), C-LOOK (circular LOOK) - pohyb jen jedním směrem, na konci otočka

RAID (Redundant Array of Inexpensive Disks)

- JBOD (Just a Bunch of Disks)
- RAID 0 - striping, žádná redundance
- RAID 1 - mirroring, redundance
- RAID 0+1 - mirroring a striping
- RAID 2 - 7-bitový paritní Hammingův kód
- RAID 3 - 1 paritní disk, po bitech na disky
- RAID 4 - 1 paritní disk a striping
- RAID 5 - distribuovaná parita a striping
- RAID 6 - distribuovaná parita - dvojitá P+Q, striping