Cluster (pevný disk)

Z Wikipedie, otevřené encyklopedie
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 historicky souvislý úsek dat o velikosti alespoň 512 bajtů, 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 (viz LBA). Před LBA se používala trojice Cylindr-Hlava-Sektor. Použití bloků umožňuje výrazně snížit režii při adresaci a evidenci uložených dat (je potřeba menší množství metadat).

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é se označuje alokační blok (cluster, alokační jednotka). Jeden alokační blok je vždy násobkem bloků na úložném médiu (1, 2, 4, …, 32, 64, 128, …). Operační systém pak 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]

Pro práci s pevnými disky (tj. disky s rotační plotnou) bylo během doby vymyšleno mnoho vylepšení, které zvyšovaly výkon při čtení a zápisu dat. Některá vylepšení jsou už zastaralá nebo naopak nevhodná pro současná zařízení (např. při práci se SSD disky nebo s USB flash disky).

Bloky dat[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.

Velikost alokační jednotky[editovat | editovat zdroj]

V současné době se obvykle nepoužívají alokační jednotky souborových systémů menší, než 4 kiB, což je stejně jako obvyklá velikost stránky paměti. Větší alokační jednotky (8, 16, 32, 64 i více  kiB) snižují režii a fragmentaci u větších souborů, ale komplikují práci systému při alokaci paměti pro data, spolupráci s buffery a cache. Při ukládání malých souborů může při příliš velké alokačním jednotce dojít naopak ke zvýšení režie z důvodu vnitřní fragmentace.

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

Prokládání[editovat | editovat zdroj]

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 (při sekvenčním čtení a zápisu) byly sektory přeházené (např. ob jeden sektor), což poskytovalo elektronice disku čas na zpracování přečteného sektoru (když se zpracování nestihlo v mezeře mezi sektory, nemuselo se na čtení následující sektoru v pořadí čekat celou další otáčku plotny). Prokládání sektorů proto není možné zaměňovat s fragmentací.

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