Dyski twarde od A do Z.pdf

(488 KB) Pobierz
Dyski twarde od A do Z
Dyski twarde od A do Z
Z muzeum
Historia pamięci masowych sięga połowy dziewiętnastego wieku – już wtedy używano kart perforowanych
do wprowadzania danych do mechanicznych maszyn liczących. Pierwsze elektroniczne komputery korzystały z
pamięci zbudowanej z lamp elektronowych, potem zaczęły pojawiać się różnej maści pamięci magnetyczne –
bąbelkowe, taśmowe, bębnowe. Pierwszy w historii twardy dysk pojawił się w 1957 roku. Wtedy to IBM
zaprezentował urządzenie o nazwie RAMAC 350 – złożony z pięćdziesięciu 24-calowych dysków zespół miał
pojemność 5 MB, a koszt jego rocznej dzierżawy wynosił 35 tys. dolarów; jak nietrudno policzyć, oznaczało to 7
tys. dolarów za megabajt... W epoce maszyn mainframe budowano całe „farmy dysków” z zamkniętymi w
klimatyzowanych pomieszczeniach zestawami talerzy o średnicach 14 czy 8 cali, wartymi grube dziesiątki tysięcy
dolarów. Pojawienie się IBM PC w roku 1981 wcale nie zapowiadało rewolucji w dziedzinie pamięci masowych –
system operacyjny „prapeceta” zawierał procedury obsługi pamięci w postaci magnetofonu kasetowego, choć
oczywiście istniała także możliwość korzystania ze stacji dyskietek. Lista opcjonalnego wyposażenia IBM PC/XT z
roku 1983 obejmuje już twardy dysk o pojemności 5 lub 10 MB – ówczesne napędy o znajomej średnicy 5,25"
miały wysokość trzech cali (podobnie zresztą, jak wczesne stacje dyskietek) i stąd właśnie określenie „full height”
(współczesny czytnik CD-ROM to „half height”). W roku 1984 Western Digital skonstruował - dzierżący przez kilka
lat godność „standardu przemysłowego”, zastosowany w IBM PC/AT interfejs ST506, zaś w 1986 – opracowany do
spółki z firmą Compaq dobrze nam znany interfejs IDE (Integrated Drive Electronics). Mniej więcej rok później w
komputerach stacjonarnych zaczęto instalować dyski 3,5" (o wysokości 1", czyli „low profile”) – dopiero potem
znalazły one zastosowanie w przenośnych laptopach. Postęp technologii powodował ciągły wzrost pojemności i
szybkości urządzeń, przy jednoczesnym spadku zapotrzebowania na energię, coraz mniejszej hałaśliwości i
większej niezawodności. Wyniki tego wyścigu obserwujemy na co dzień. W dwudziestoletniej historii PC
najbardziej eksponowany był zawsze postęp technologii półprzewodnikowej. Postęp w innych, bezpośrednio z nią
związanych dziedzinach technologii był zawsze mniej eksponowany – w ciągu tego samego czasu, gdy stopniowo
dokonywano 100-krotnego przyspieszania zegara procesora, pojemność typowego dysku stałego wzrosła 1000-
krotnie. Dysk stały, dopóki działa i do momentu, gdy mieszczą się na nim bez kłopotów nasze dane i programy,
rzadko bywa przedmiotem szczególnego zainteresowania. Tylko w momencie zakupu staramy się uzyskać
możliwy kompromis pomiędzy pojemnościami – dysku i portfela, później dysk schodzi do swojej służebnej roli.
Tymczasem od pojemności i szybkości dysku zależy wydajność komputera i wygoda jego użytkowania, a
niezawodność dysku to w wielu przypadkach sprawa nie tylko bardzo ważna, ale wręcz kluczowa. Przeciętny
użytkownik komputera traktuje dysk jako „czarne pudełko” zdolne do zapamiętania pewnej ilości danych – im
więcej, tym lepiej. Bardziej dociekliwi zwracają uwagę również na jego parametry wydajnościowe – średni czas
dostępu do danych oraz szybkość odczytu i zapisu. Parametry eksploatacyjne każdego urządzenia wynikają z jego
konstrukcji, dlatego najdociekliwsi użytkownicy lubią wiedzieć również, co jest wewnątrz „czarnego pudełka” i jak to
działa.
Budowa
Stosowana w dyskach sztywnych technika zapisu nie odbiega od tej, z jaką mamy do czynienia w
magnetofonie czy w kartach telefonicznych, a także w dyskietkach. Wytwarzane przez elektromagnetyczną głowicę
pole magnetyczne powoduje uporządkowanie domen magnetycznych w nośniku ferromagnetycznym o szerokiej
pętli histerezy, a ruch tak zapisanego nośnika w pobliżu głowicy odczytującej powoduje w niej indukcję sygnału
elektrycznego, odpowiadającego zapisanym danym. Współczesna technologia do odczytu danych używa, zamiast
głowic indukcyjnych, półprzewodnikowych elementów magnetorezystywnych, umożliwiających zwiększenie
zarówno odczytywalnej gęstości zapisu, jak i zwiększenie szybkości odczytu. Dysk stały naszego PC to wirujący
talerz lub zespół talerzy o powierzchni pokrytej nośnikiem magnetycznym, a odpowiednio ustawiane na tych
powierzchniach głowice zapisują i odczytują dane. Głowice umieszczone są na przypominającym ramię gramofonu
ramieniu pozycjonującym i dociskane do powierzchni dysku sprężynami, ale podczas obrotów dysku nie stykają się
z nią – powstająca w wyniku szybkich obrotów talerzy „poduszka powietrzna” utrzymuje głowice nad powierzchnią.
Rozwiązanie takie nazywane jest „pływającymi głowicami” i jak na razie jest bezkonkurencyjne i stosowane
powszechnie, chociaż są już w toku prace nad innymi sposobami prowadzenia głowic.
Jak już wspomniałem, głowice dysku są zamontowane na konstrukcji obrotowej, budzącej skojarzenie z ramieniem
gramofonu. Słuszne optycznie skojarzenie nie jest jednak prawdziwe. Podczas gdy ramię gramofonu było
prowadzone przez ścieżkę zapisu na płycie, to z ramieniem głowic dysku jest zupełnie inaczej – musi ono być
ustawione tak, by głowice znalazły się nad odczytywaną właśnie ścieżką (czy raczej – na odczytywanym
„cylindrze”). W pierwszych konstrukcjach dysków sztywnych pozycjonowanie głowic było realizowane przez
mechanizm napędzany silnikiem krokowym (rozwiązanie takie jest do dziś stosowane w napędach dyskietek). W
miarę wzrostu wymagań szybkościowych stosowano inne rozwiązania, spośród których optymalnym jak na razie
okazało się voice coil, czyli układ magnetodynamiczny, wzorowany na stosowanym w głośnikach (stąd nazwa) –
umieszczona w polu silnego magnesu stałego cewka porusza się zgodnie z przepływającym przez nią prądem,
ustawiając w odpowiedniej pozycji związane z nią mechanicznie ramię głowic dysku. Technika ta pozwoliła na
zmniejszenie czasu pozycjonowania głowic na zadanej ścieżce z kilkudziesięciu do kilku milisekund, a przy
przejściach pomiędzy kolejnymi ścieżkami nawet poniżej jednej milisekundy. Tradycyjnie w komputerze PC AT
adresowanie dysku przez przerwanie 13 BIOS-u (INT 13) odbywało się za pomocą trzech parametrów: cylindra,
głowicy i sektora (tzw. adresowanie CHS od słów Cylinder, Head, Sector). Konwencjonalne funkcje INT 13 używały
24 bitów do reprezentacji adresów, zatem możliwe było jedynie zaadresowanie obszaru o pojemności 8,4 GB
(224×512 bajtów/sektor = 8,4 GB). W celu przekroczenia tej granicznej wartości producenci wprowadzili dwa
nowsze sposoby (stosowane właśnie w dzisiejszych dyskach) adresowania. Pierwszy polegał na rozszerzeniu
reprezentacji adresu w konwencji CHS do 32 bitów, drugi – częściej stosowany – używał zupełnie odmiennej
metody noszącej nazwę LBA. W metodzie LBA (Logical Block Addressing) stosowane jest adresowanie 28-bitowe,
co pozwala na zaadresowanie obszaru do granicznej (znowu!) pojemności wynoszącej: 228×512 bajtów/sektor =
137,4 GB. Jest to wartość jak na razie nieosiągalna dla przeciętnego posiadacza komputera (dla producentów –
owszem; nie tak dawno Quantum poinformowało o wyprodukowaniu dysku o pojemności ponad 200 GB!). Ten
właśnie tryb adresowania jest zalecany i zaimplementowany w BIOS-ach większości dzisiejszych PC-tów. Zapis na
dysku dokonywany jest w formie koncentrycznych ścieżek, podzielonych na sektory. Dość tajemnicze pojęcie
„cylinder”, występujące w opisie parametrów dysku i nie znajdujące bezpośredniego odbicia w jego konstrukcji, to
grupa ścieżek o tym samym numerze na wszystkich powierzchniach roboczych. Liczba głowic odpowiada liczbie
roboczych powierzchni talerzy dysku. Taki opis parametrów fizycznych dysku oraz wynikający z niego tryb
adresowania stanowiły pierwotnie podstawę rozumienia zapisu na dysku przez wszystkie systemy operacyjne.
Opis CHS (cylinder/head/sector) sprawdzał się bardzo dobrze w czasach, gdy całością procesu zapisu i odczytu
danych zarządzała jednostka centralna przy współudziale dość prymitywnego sterownika. Nietrudno jednak
zauważyć, że całkowita długość pierwszej, najbardziej zewnętrznej ścieżki jest znacznie większa od długości
ostatniej, najbliższej osi talerza. Liniowa gęstość zapisu jest stała dla wszystkich ścieżek (po prostu –
maksymalna), a przy stałej liczbie sektorów na każdej kolejnej ścieżce (licząc od ostatniej do pierwszej)
marnowałaby się coraz większa ilość miejsca. Dlatego już od dość dawna stosuje się technikę MZR (Multiple Zone
Recording), maksymalnie wykorzystującą dostępną powierzchnię talerzy – liczba sektorów w ostatnim cylindrze
dysku, wynikająca z liniowej gęstości zapisu, pozostaje stała w kolejnych cylindrach do chwili, gdy ilość wolnego
miejsca pozwoli na dodanie jednego sektora więcej. Na dysku powstają w ten sposób kolejne strefy,
charakteryzujące się rosnącą liczbą sektorów w miarę zbliżania się do krawędzi talerza. W początkowym okresie
stosowania MZR praktykowano technikę przeliczania geometrycznej lokalizacji danych na logiczne parametry
systemu CHS. Wymagało to dość kłopotliwego, ręcznego wprowadzania parametrów przeliczeniowych
konkretnych modeli dysków do pamięci konfiguracji systemu (tzw. Setup). Od problemu indywidualnych
parametrów dysków uwolniły nas dopiero: z jednej strony rozwój interfejsu ATA, dzięki któremu system był w stanie
samodzielnie odczytać z dysku i przyjąć do wiadomości przeliczeniowe parametry, z drugiej zaś – wprowadzenie
BIOS-u funkcji obsługi trybu LBA (Logical Block Addressing), uniezależniającego adresowanie danych na dysku od
ich fizycznej lokalizacji na nim.
Kodowanie danych
Zapis danych binarnych w formie magnetycznej nie jest dokonywany bezpośrednio „bit w bit” – dane
przeznaczone do zapisu są kodowane według pewnych algorytmów, których zadaniem jest usprawnienie odczytu,
a także zapewnienie większej jednoznaczności zapisu. Kodowanie danych przeznaczonych do zapisu składa się z
dwu faz – najpierw do zapisywanych danych dodawane są dane nadmiarowe umożliwiające detekcję i korektę
ewentualnych błędów odczytu (CRC – Cyclic Redundancy Code – najprostszy, a zarazem jeden z
najefektywniejszych algorytmów wprowadzania danych nadmiarowych dla celów korekcji błędów), następnie zaś
wynikowe wartości są przekształcane tak, by uniknąć powtarzania dłuższych ciągów powtarzających się zer czy
jedynek. Historycznie pierwszym systemem kodowania danych był MFM, dziś już zupełnie nie stosowany, wyparty
następnie przez kodowanie RLL (Run Lenght Limited) stosowane w dyskach sztywnych do niedawna, a wciąż
jeszcze używane przy zapisie na dyskietkach. Obecnie powszechnie stosowaną techniką kodowania danych na
dysku jest PRML (Partial Response Maximum Likelihood), która zapewnia największą efektywną gęstość zapisu, a
także najniższą stopę błędu odczytu danych. Technika PRML wymaga stosowania w układach sterujących dysku
specjalizowanych procesorów o dużej mocy, jednak technologie krzemowe są obecnie na tyle tanie, że uzyskiwane
dzięki nim zwiększenie gęstości zapisu z nawiązką wyrównuje nieco wyższy koszt wbudowanej w dysk
elektroniki.
MZR - Multiple Zone Recording - zapis wielostrefowy
Nietrudno zauważyć, że w wyniku podziału każdej ścieżki na stałą liczbę sektorów, sektory znajdujące się
dalej od osi dysku będą znacznie dłuższe (długość sektorów wewnętrznych jest ograniczona „od dołu”
maksymalnym upakowaniem bitów na jednostkę powierzchni). Aby zapobiec ewidentnemu marnotrawstwu,
podzielono dysk na kilka stref o określonej liczbie sektorów (od 60 do 120 sektorów na ścieżkę), coraz większej dla
stref bliższych obwodowi dysku. Zysk jest ewidentny (o około 25% większa pojemność i wydajność), przy okazji
wychodzi na jaw drobne oszustwo: jak to się ma do liczby sektorów na ścieżkę deklarowanej w „Setupie” BIOS?
Ano, BIOS mówi swoje, a elektronika dysku po cichu dokonuje przeliczeń... Mało tego, wewnątrz dysku dzieje się
jeszcze coś, o czym ani użytkownik, ani system operacyjny nie mają zielonego pojęcia. Chodzi mianowicie o
system obsługi błędów. Oczywiście, dane zapisywane na dysku wyposażone są w dodatkowe informacje
umożliwiające funkcjonowanie systemu korekcji „w locie” (ECC on the fly, kodowanie Reed-Solomon itd). Oprócz
tego jednak na każdej ścieżce zarezerwowana jest pewna liczba sektorów, które w przypadku pojawienia się
fizycznych uszkodzeń nośnika „podstawiane” są przez wewnętrzny mikroprocesor napędu zamiast sektorów
wadliwych – dzieje się to całkowicie niezauważalnie dla świata zewnętrznego. Notabene, wewnętrzne układy
mikroprocesorowe, w które wyposażone są współczesne napędy, mają moc przetwarzania porównywalną z co
najmniej z IBM PC/AT.
G ł łowice magnetorezystywne
Twardy dysk ze swoimi maleńkimi elementami wykonanymi z dokładnością przy której, zegarmistrzowska
precyzja przypomina raczej kowalską robotę to w istocie arcydzieło technologii. Prawdziwym cudem jest jednak
głowica. W nowoczesnych konstrukcjach stosuje się tak zwane głowice magnetorezystywne. Gwoli ścisłości
powinno się raczej używać określenia „hybrydowe” – do zapisu danych służy elektromagnetyczna głowica
cienkowarstwowa (jej mikroskopijna ceweczka ma około 10 zwojów), głowica magnetorezystywna służy do
odczytu. Wykorzystuje ona efekt zmiany oporności elektrycznej specjalnego materiału (stop żelaza i niklu) przy
zmianie pola magnetycznego i jest o wiele czulsza od głowicy elektromagnetycznej. Pozwala to znacznie
zmniejszyć powierzchnię zajmowaną przez każdy bit informacji, a więc – zwiększyć gęstość zapisu. Współczesne
dyski charakteryzują się gęstością rzędu 1 gigabita na cal kwadratowy, zaś w laboratoriach IBM (to właśnie w nich
stworzono pierwsze głowice magnetorezystywne) osiągnięto w grudniu 1996 roku gęstość 5 gigabitów na cal
kwadratowy. Przy tej gęstości na jednym calu długości ścieżki mieści się 240 tysięcy bitów, na jeden cal promienia
dysku przypada 21 tysięcy ścieżek, a jeden bit zajmuje powierzchnię 1,2 na 0,1 mikrometra (przekrój ludzkiego
włosa zmieściłby około 1000 bitów). Dzięki doskonaleniu technologii GMR (Giant Magnetoresistive Effect)
naukowcy przewidują osiągnięcie przed końcem wieku gęstości 10 Gb na cal kwadratowy.
Pozycjonowanie g ł łowicy
Kiedyś na potrzeby „nawigacji” zarezerwowana była cała jedna powierzchnia dysku, na której zapisane
były znaczniki ścieżek i sektorów dla pozostałych głowic – system taki nazywał się „dedicated servo”. Dzisiejsze
napędy wykorzystują technologię „embedded servo” – znaczniki umieszczone są na powierzchniach roboczych i
przemieszane z obszarami danych. Wiąże się to co prawda z przydzieleniem elektronice dysku dodatkowych
zajęć, pozwala jednak zwiększyć efektywną pojemność urządzenia. W celu uniknięcia błędów odczytu głowica
musi znajdować się dokładnie nad środkiem danej ścieżki. Nie jest to wcale łatwe zadanie, gdyż pod wpływem
ciepła materiał, z którego wykonane są płyty dysku, może ulec odkształceniom. W odróżnieniu od tradycyjnej
techniki Servo, przy której głowica musiała regularnie korzystać ze ścieżki sterującej, aby zoptymalizować swoją
pozycję, mechanizm Embedded Servo wykorzystuje informacje sterujące zapisane na każdej ścieżce. Głowice
zapisująco – odczytujące mogą więc korzystać z nich przez cały czas, co umożliwia dokładniejsze pozycjonowanie.
Technika Embedded Servo działa na podobnej zasadzie, jak automatyczny pilot, który nieprzerwanie dba o
utrzymanie właściwego toru lotu. Stosowana dawniej okresowa kalibracja głowicy dysku powodowała natomiast
dodatkowe przerwy w transmisji danych.Inteligentne układy sterujące pozwoliły także zmienić sposób przesuwania
głowicy nad szukaną ścieżkę – niegdyś służyły do tego stosunkowo powolne i zawodne silniczki krokowe (do dziś
używane w stacjach dyskietek zdradzają swą obecność charakterystycznym burczeniem), teraz delikatne jak
piórko kolibra ramię głowicy wychylane jest na podobieństwo wskazówki miernika elektrycznego za pomocą cewki,
przez którą przepływa prąd o odpowiednio dobranym natężeniu (tzw. voice coil) – dzięki temu średni czas dostępu
4725985.001.png
do danych to dziś 10 lub mniej milisekund. Niektóre firmy stosują technologię „Read on Arrival”, wykorzystującą
mechanizm korekcji błędów – pierwsza próba odczytu podejmowana jest jeszcze zanim głowica ustabilizuje się
nad żądaną ścieżką; albo próba się powiedzie, albo skutecznie zadziała mechanizm korekcji błędu odczytu, w
najgorszym przypadku trzeba będzie ponowić odczyt – nic do stracenia, a można zyskać cenne milisekundy.
PRML (Partial Response Maximum Likelihood)
Większość napędów jeszcze do niedawna podczas odczytu danych używała techniki zwanej peak
detection (wykrywanie wartości ekstremalnych – maksimum siły sygnału). W miarę wzrostu gęstości zapisu
rozróżnienie sąsiednich wartości szczytowych sygnału od siebie nawzajem i od tzw. tła stawało się coraz
trudniejsze. Problem ten rozwiązywano wstawiając pomiędzy sąsiadujące szczyty („jedynki”) rozdzielające chwile
ciszy („zera”). Takie postępowanie sprowadzało się do kodowania zerojedynkowych ciągów za pomocą ciągów
bardziej przejrzystych, czyli łatwiej identyfikowalnych, lecz z konieczności dłuższych. To oczywiście obniżało
efektywną gęstość zapisu danych, a w konsekwencji także wydajność napędu. Z pomocą przyszła opracowana na
potrzeby długodystansowej komunikacji w przestrzeni kosmicznej technologia PRML (Partial Response Maximum
Likelihood). Pochodzący z głowicy odczytującej analogowy sygnał jest próbkowany w wielu miejscach, a następnie
cyfrowo filtrowany przez wbudowany w elektronikę dysku dedykowany procesor sygnałowy DSP. Uzyskaną w ten
sposób próbkę analizuje się algorytmem Viterbi. Sprawdza on wszystkie kombinacje danych, które mogły
wygenerować zbliżony ciąg i wybiera tę najbardziej prawdopodobną. Umożliwia to dodatkowe zwiększenie czułości
kanału odczytu i istotne zmniejszenie prawdopodobieństwa wystąpienia błędów odczytu. Najlepsze efekty daje
połączenie technologii PRML z magnetorezystywną głowicą odczytującą ze względu na dobrą jakość
generowanego przez nią sygnału analogowego. Głowica magnetorezystywna (MRH) wykorzystuje inne zjawisko
fizyczne niż głowice, zbliżone konstrukcją do stosowanych w zwykłych magnetofonach. Element czytający MRH
jest wykonany z substancji zmieniającej oporność w polu magnetycznym, więc namagnesowanie nośnika
bezpośrednio rzutuje na natężenie płynącego przez głowicę MR prądu. Istotną zaletą technologii MR jest większa
czułość, pozwalająca na radykalne zwiększenie gęstości zapisu, a co za tym idzie – wzrost pojemności napędu
przy zachowaniu jego rozmiarów. PRML oznacza także inną metodę kodowania danych na dysku: o ile przejście
ze starej metody MFM (Multiple Frequency Modulation) na bardziej zaawansowaną RLL (Run Length Limited)
oznaczało wzrost upakowania danych o około 50%, PRML daje tu kolejne 20-40% zysku (różne źródła podają
różne wartości).
FAT
Fat - system plików
Jednostką 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!
4725985.002.png
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.
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.
4725985.003.png 4725985.004.png
Zgłoś jeśli naruszono regulamin