Cluster (pevný disk)

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Struktura disku (Cylindr-Hlava-Sektor):
(A) cylindr (stopa, kružnice, válec)
(B) sektor (úhlová výseč)
(C) blok (nejmenší fyzicky zpracovatelná část dat)
(D) cluster (nejmenší logická část souborového systému)

Cluster (též alokační blok, alokační jednotka) je v počítači logická jednotka, do které se ukládají soubory a adresáře v souborovém systému. Sloučením několika bloků do větší alokační jednotky se snižuje režie komunikace počítače s úložným zařízením, snižuje se fragmentace a zvyšuje se tak rychlost a efektivita přenosu dat. Úložným zařízením může být jakékoliv blokové zařízení (pevný disk, CD, DVD, flash paměť, pásková jednotka a podobně).

Popis[editovat | editovat zdroj]

Úložná zařízení pracují už od doby páskových jednotek s bloky dat. Blok je typicky alespoň 512 bajtů souvislý úsek dat, se kterým zařízení pracuje jako s nejmenším možným celkem (avšak například CD a DVD používá 2048 bajtů, flash paměti 32 až 128 kiB). Aby bylo možné bloky snadno adresovat, jsou lineárně očíslovány (tzv. LBA, dříve se používala trojice Cylindr-Hlava-Sektor). Použití bloků tak umožňuje výrazně snížit režii při adresaci a evidenci uložených dat (tzv. metadata).

Spolu s růstem velikosti úložného prostoru však začala být velikost bloku malá, protože neúměrně zvyšovala režii pro ukládání metadat, zvyšovala fragmentaci dat a zpomalovala tak rychlost přenosu dat. Proto bylo přistoupeno ke slučování bloků do větších logických celků na úrovni systému souborů, které označujeme jako alokační blok (cluster, alokační jednotka). Jeden alokační blok je vždy 2^n násobkem bloků na úložném médiu (1, 2, 4, …, 32, 64, …).

Operační systém tedy při komunikaci se zařízením pracuje s menšími bloky, než prezentuje při práci se souborovým systémem.

Efektivita[editovat | editovat zdroj]

Při čtení jediného bajtu (nebo bitu) je proto vždy přečten celý blok dat a stejně tak i při zápisu. Při změně je nutné nejprve celý blok načíst do paměti, informaci změnit a celý blok následně zapsat. Na první pohled se tak dramaticky zvýší režie. Přečtená data se však ukládají do cache (obvykle část operační paměti počítače) a pro následující čtení blízkých dat tak není nutné číst data ze zařízení, ale jsou použita data z cache. Při zápisu se naopak změněná data uloží jen do cache a k vlastnímu zaznamenání dat na úložné zařízení dojde až později (tj. více změn najednou).

Související informace naleznete také v článku Cache.

V současné době se obvykle nepoužívají alokační bloky menší, než 4 kiB, což je stejně jako obvyklá velikost stránky paměti. Větší alokační jednotky (8, 16, 32 nebo 64 kiB) snižují režii a fragmentaci u větších souborů. Při ukládání malých souborů může při příliš velkém alokačním bloku dojít naopak ke zvýšení režie z důvodu vnitřní fragmentace.

Související informace naleznete také v článku Fragmentace (informatika).

Bloky dat (sektory), které patří jednomu alokačnímu bloku, nemusí být přesně vedle sebe. Starší disky používaly prokládání sektorů (anglicky interleave), při kterém z důvodu optimalizace přístupu na disk (při sekvenčním čtení a zápisu) byly sektory přeházené (např. ob jeden sektor). Prokládání sektorů proto není možné zaměňovat s fragmentací.

Související články[editovat | editovat zdroj]