Blok (datové úložiště)

zpracování dat v blocích
(přesměrováno z Blok (data))

Blok (fyzický záznam, anglicky block, physical record) je v informatice posloupnost bajtů nebo bitů určující množství dat, které je ze zařízení pro ukládání dat čteno/zapisováno najednou, tj. v bloku. Například pevné disky používaly velikost bloku 512 bajtů, nyní používají 4096 bajtů. Vstupně/výstupní zařízení pracující s bloky je nazýváno blokové zařízení. Opačným typem je znakové zařízení, které pracuje s jednotlivými znaky/bajty (například USB port).

Seskupování (shlukování) dat je anglicky nazýváno blocking, opačný proces deblocking. Blok (fyzický záznam) má pro dané zařízení určitou (maximální) délku resp. velikost bloku.[1]

Popis editovat

Většina vstupně/výstupních zařízení je pomalejších, než samotný počítač (resp. jeho mikroprocesor). Čtení nebo zápis po jednotlivých bajtech (nebo dokonce bitech) by bylo velmi neefektivní, protože by počítač musel opakovaně na dané zařízení čekat a nemohl by pokračovat ve výpočtu. Dalším problémem jsou mechanické a konstrukční omezení některých zařízení, kde je například potřeba nastavit čtecí/zápisovou hlavu na příslušnou pozici (magnetická páska, disketa, pevný disk), což je velmi zdlouhavá operace. Třetím problémem je adresace uložených dat. Pokud by měla každá malá část dat svoji adresu, bylo by pro orientaci nutné použít velmi mnoho doplňující dat (tzv. metadata). Z těchto důvodů je při práci se vstupně/výstupním zařízením vždy najednou zpracováno větší množství dat, které označujeme jako blok.

Čtení dat editovat

Při čtení dat ze vstupně/výstupního zařízení nejprve počítač požádá o konkrétní blok dat (sdělí číslo požadovaného bloku). Zařízení pak přečte celý blok dat a uloží ho do vyrovnávací paměti, odkud je v příhodnou chvíli přenesen do operační paměti počítače. V operační paměti data zůstanou po jistou dobu uložena v oblasti, která se nazývá cache (keš). Protože čtení následujících dat je typicky z okolí dříve požadovaných dat, která již byla přečtena (a uložena v cache), nemusí počítač čekat na pomalé zařízení a data přečte velmi rychle ze zmíněné cache. Kdyby nebyla data čtena v bloku, muselo by proběhnou mnoho pomalých čtení, zatímco díky čtení celého bloku proběhlo čtení z pomalého zařízení jen jednou. Tím je výrazně snížena režie a urychlena manipulace s toky dat.[2]

Zápis dat editovat

Při zápisu dat počítač nejprve shromáždí větší množství dat (celý blok), který následně najednou zapíše. Opět je ušetřena režie, která by při jednotlivých zápisech vznikla. Naopak pokud počítač potřebuje zapsat jen malé množství dat, které je menší než definovaný blok, je nutné zapsat celý blok dat (tj. zapsat i prázdná data, resp. nuly).

Aktualizace dat editovat

Při aktualizaci dat uložených v zařízení je nutné nejprve přečíst blok dat, který obsahuje dotčená data. Tyto data jsou přemístěna do paměti počítače, tam upravena a následně je celý blok dat zapsán do zařízení. Na první pohled se může zdát, že taková manipulace způsobí zpomalení práce se zařízením, avšak díky použití cache je negativní vliv na rychlost potlačen.

Souborové systémy editovat

Soubory jsou ukládány do souborových systémů, které jsou umístěny na blokových zařízeních (block device) používajících bloky jako nejmenší možnou jednotku dat, se kterou je možné pracovat (číst/zapisovat). Souborové systémy mohou používat alokační jednotky větší, než je velikost bloku (např. 4096 vs. 512 bajtů). V takovém případě je jedna alokační jednotka rozprostřena na několik navazujících bloků. Operační systém pak sice při komunikaci se zařízením pracuje s menšími bloky, ale čte vždy najedou všechny sousední bloky, které nesou celou alokační jednotku. Při této manipulaci dochází interně v počítači ke komplikacím s alokací paměti, a proto mají moderní disky zvětšený blok z původních 512 bajtů na 4096 bajtů a moderní souborové systémy používají alokační jednotku stejné velikosti (4096 bajtů).

Vnitřní fragmentace editovat

Na konci každého souboru je v poslední alokační jednotce nevyužité místo („slack space“), protože délka souboru je libovolná, avšak alokované místo je násobkem velikosti alokační jednotky. Takto nevyužité místo je označováno jako vnitřní fragmentace. Některé novější souborové systémy se snaží řešit tento problém pomocí technik zvaných „block suballocation“ a „tail merging“, které umožňují do ne zcela obsazených alokačních jednotek (bloků) umístit více malých souborů.

Související články editovat

Reference editovat

V tomto článku byl použit překlad textu z článku Block (data storage) na anglické Wikipedii.

  1. CNET STAFF. Available hard drive space, block sizes, and size terminology. CNET. 5 May 2009. Dostupné online [cit. 29 April 2014]. 
  2. CHANG, S.K. PHYSICAL STRUCTURES [online]. [cit. 2014-04-29]. Dostupné online.