Skip to content

Dyski twarde od A do Z | Forum - Dysk twardy i nie tylko

Increase font size Decrease font size Default font size
Jesteś: News arrow Fat
Fat - system plików Utwórz PDF Drukuj Poleć znajomemu
07.11.2008.

fat1.gifJednostką objętości zapisu na dysku jest sektor, mieszczący 512 bajtów danych, a wraz z nimi również dane nadmiarowe zapewniające skuteczną korekcję błędów odczytu. Ale nasze dane rzadko mieszczą się w tak skromnej objętości. Jak zachować ich ciągłość przy podziale na poszczególne sektory? Skąd system operacyjny ma wiedzieć, które sektory wchodzą w skład danego pliku? Każdy z systemów operacyjnych ma własny, specyficzny system opisu danych na dysku, zwany systemem plików.
 
Niektóre, bardziej zaawansowane systemy operacyjne są w stanie posługiwać się równolegle kilkoma systemami plików dyskowych. Najprostszym systemem plików jest, używany przez DOS i Windows, system oparty na tablicy alokacji plików FAT (File Allocation Table). System ten, pierwotnie stworzony na potrzeby zapisu na dyskietkach, dzięki swojej prostocie trafił do obsługi dysków sztywnych w systemach Microsoftu. System FAT początkowo traktował jako jednostkę alokacji danych pojedynczy sektor, w wyniku czego przy 16-bitowej architekturze systemu operacyjnego umożliwiał obsługę dysków o pojemnościach nie przekraczających 32 MB (65536 sektorów). Obsługę większych pojemności umożliwiło dopiero użycie większych jednostek alokacji, nazywanych klastrami (ang. cluster – pęczek, grono). Przy obsłudze woluminów większych od 32 MB wielkość klastra jest zależna od wielkości woluminu i w przypadku np. dysku o pojemności 1 GB klaster liczy sobie 16 kB, a dysk 2,5 – gigabajtowy wymaga już klastrów o pojemności 64 kB. Każdy zapisany plik to trochę zmarnowanej przestrzeni, średnio połowa pojemności klastra, bo przecież długość plików jest wielkością przypadkową. W przypadku, gdy dysk służy do przechowywania bazy danych, złożonej z kilku plików po kilkaset megabajtów, nie ma to żadnego znaczenia, ale w przypadku kilku tysięcy plików o różnych długościach, jakie znajdują się na dysku typowego użytkownika, może to być kilkanaście megabajtów straconego miejsca. A w dodatku system odczytuje całe klastry – w przypadku potrzeby wczytania liczącego sobie 300 bajtów pliku, np. *.ini, system żąda od dysku odczytu całego klastra. Oprócz straty miejsca jest to również strata czasu!

image1.gif

Dzięki rozmaitym rozszerzeniom i protezom (jak np. VFAT) system FAT dotrwał do chwili, kiedy programiści Microsoftu zdołali stworzyć 32 – bitową tablicę alokacji. Zmiana nie tyle jakościowa, co ilościowa  dopiero dysk pojemności większej od 2 GB wymaga stosowania jednostek alokacji większych od sektora, a 32-kilobajtowymi klastrami będziemy się posługiwać dopiero w następnym stuleciu.

O wadach systemu FAT, zwłaszcza w jego microsoftowych realizacjach, można by długo pisać. Oprócz wspomnianych już kłopotów, wywołanych przez zbyt małą liczbę dostępnych jednostek alokacji, poważną wadą systemu FAT jest silna fragmentacja plików pomiędzy wiele klastrów o bardzo różnym fizycznym położeniu na dysku. Pociąga to za sobą konieczność okresowej defragmentacji przy użyciu specjalnych narzędzi programowych, a także powoduje stosunkowo duże prawdopodobieństwo powstawania błędów zapisu, polegających na przypisaniu jednego klastra dwóm plikom (tzw. crosslink), co kończy się utratą danych z jednego lub obu „skrzyżowanych” plików.

image2.gif

 Typowym błędem, pojawiającym się w systemie FAT, jest również pozostawianie tzw. zgubionych klastrów, tj. jednostek alokacji nie zawierających informacji, ale opisanych jako zajęte. O tym, jak duże jest prawdopodobieństwo tego rodzaju błędów, świadczy fakt wyposażenia DOS-u od samego początku w narzędzie do ich wykrywania i likwidacji (polecenie CHKDSK).

Na potrzeby OS/2 IBM i Microsoft stworzyły wspólnie system plików HPFS (High Performance File System) stosowany początkowo również jako jeden z systemów plików dla Windows NT. Przeznaczony od samego początku do obsługi dużych dysków system używa dość złożonej struktury zapisu danych. Zapisywanych jest również wiele informacji nadmiarowych, umożliwiających łatwe odtworzenie zapisu w przypadku błędów, a także np. informacje statystyczne o użytkowaniu plików, przeznaczone do wykorzystania przez inteligentny, interaktywny system buforowania operacji dyskowych. System jest również wyposażony w mechanizmy ochrony zapisu przed uszkodzeniem, jak np. automatyczne przenoszenie danych z sektorów o niepewnej jakości do dobrych (tzw. HotFix).

Zaletami tego systemu są przede wszystkim szybkość wyszukiwania danych, wysoki stopień ciągłości ich zapisu, a także bardzo duża niezawodność. Główną wadą zaś – stosunkowo długi czas zakładania nowych plików, wynikający z konieczności każdorazowej rekonfiguracji drzewa katalogowego. Niestety, nowe wersje Windows NT (od 4.0) nie obsługują już plików dysków w formacie HPFS pomimo tego, że byłby on wymarzonym rozwiązaniem do obsługi np. dużych, rzadko przebudowywanych baz danych.

Równolegle z udziałem w pracach nad HPFS Microsoft opracował własny zaawansowany system plików – NTFS (New Technology File System) – przeznaczony dla Windows NT. System ten, oparty na 32-bitowych tablicach FAT, ma dość rozbudowany system bezpieczeństwa, a także mechanizmy ograniczające fragmentację plików. Ciekawą jego cechą jest możliwość przypisania plikom atrybutu kompresji, pozwalającego na ich kompresję w trakcie zapisu.

Jak widać, po wycofaniu się z HPFS, stosowane obecnie najpopularniejsze systemy plików są wciąż oparte na systemie FAT. Wszystko wskazuje na to, że ciągły wzrost pojemności dysków sztywnych, a także wzrastające ilości składowanych danych wymuszą jednak opracowanie i upowszechnienie systemu plików o strukturze bardziej odpowiadającej współczesnej strukturze danych. 

image3.gif

 
następny artykuł »