Sposoby zapisu i odczytu danych na dysku twardym
Wszystkie typy pamięci na warstwach magnetycznych działają na tej samej zasadzie; na poruszającej się warstwie magnetycznej dokonywany jest zapis informacji polegający na odpowiednim przemagnesowaniu pól nośnika informacji. Zapis i odczyt dokonywany jest za pomocą głowic. Głowicą nazywamy rdzeń z nawiniętą na nią cewką i niewielką szczeliną miedzy biegunami. Zapis informacji sprowadza się do namagnesowania poruszającego się nośnika. Pole magnetyczne wytworzone w szczelinie magnesuje nośnik tak długo, jak długo płynie prąd w cewce głowicy. Namagnesowany odcinek nośnika zachowuje się jak zwykły magnes, wytwarzając własne pole magnetyczne.
Istnieje wiele metod zapisu informacji cyfrowej na nośniku magnetycznym:
Metoda bez powrotu do zera
Polega na tym, że zmiana kierunku prądu w głowicy zapisu następuje w chwili zmiany wartości kolejnych bitów informacji. Zmiana kierunku prądu nie występuje podczas zapisywania ciągu zer lub jedynek. Metoda ta nie posiada możliwości samo synchronizacji, tzn. z informacji odczytanej nie da się wydzielić impulsów określających położenie komórki bitowej.
Metoda modulacji częstotliwości (FM)
Polega na tym, że przy modulacji FM prąd w głowicy zapisu zmienia na początku każdej komórki bitowej, oraz w środku komórki, gdy zapisywany bit ma wartość "jedynki".
Metoda zmodyfikowanej modulacji częstości (MFM)
Metoda MFM nazywana jest metodą z podwójną gęstością i dzięki niej jest podwojona pojemność dysku twardego, stosuje się tu regułę: bit o wartości "1" ustawia impuls zapisujący pośrodku komórki bitowej, bit o wartości "0", ustawia impuls na początku komórki bitowej lecz tylko wtedy, gdy poprzedni bit nie jest równy "1". W metodzie tej dla odtwarzania danych, w trakcie odczytu, stosowany jest układ z pętlą synchronizacji fazy PLL, na podstawie impulsów odczytanych z głowicy odczyt o nazwie READ DATA.
Metoda RRL
Redukuje o 35% ilości przemagnasowań nośnika - można zatem, przy niezmienionej maksymalnej częstotliwości pracy, półtorakrotnie zwiększyć gęstość zapisu danych. Odczyt informacji polega na przemieszczeniu namagnesowanych odcinków nośnika pod szczeliną.
Pole magnetyczne pochodzące od namagnesowanego odcinka nośnika, przenika rdzeń głowicy i indukuje w cewce siłę elektromotoryczną, która jest następnie wzmacniana i formowana w impuls cyfrowy, taktowany jako impuls zerowy lub jako bit danych, w zależności od metody zapisu informacji.
Dysk twardy odróżniają od dysku elastycznego następujące cechy:
- Głowica odczytu-zapisu nie dotyka dysku w czasie pracy, jest bowiem utrzymywana w małej odległości od niego (ok. 1mm) na poduszce powietrznej powstającej automatycznie na skutek ruchu obrotowego.
- Prędkość obrotowa dysku twardego jest bardzo duża, dzięki temu osiąga się duże prędkości transmisji danych (MB/s).
- Ponieważ dysk twardy jest niewymiennym nośnikiem danych, można go dokładnie wycentrować i osiągnąć przy tym dużą liczbę ścieżek, czyli dużą pojemność (do kilku tysięcy MB).
Techniki odczytu danych na dysku twardym
Technika PEAKDETECTION
Przez pewien czas stosowano podczas odczytu danych technikę zwaną peak detection (wykrywanie maksymalnej 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.
Technologia PRML
Jako następcę tej metody wykorzystano opracowaną na potrzeby długodystansowej komunikacji w przestrzeni kosmicznej technologię PRML (Partial Response Maximum Likelihood) jest to także wspomniana wyżej technika kodowania danych. 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 procesor sygnałowy DSP. Taką 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).
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 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.
początek
Wracamy do głównej :)
Charakterystyka systemów plików
FAT-File Allocation Table
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!
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.
Tablica alokacji plików służy do gromadzenia informacji o zawartości wszystkich jednostek alokacji i przyporządkowanych do nich plików. Jednostki te mogą być numerowane za pomocą liczb 12-, 16- lub 32-bitowych. W zależności od wykorzystanego formatu opisującego ich położenie system plików jest nazywany FAT12, FAT16 lub FAT32. Dwa pierwsze obsługiwane są przez wszystkie systemy operacyjne firmy Microsoft, ostatni (FAT32) wprowadzono zaś dopiero od wersji Windows 95 OSR2. Partycje z systemami plików tego rodzaju są także obsługiwane przez Windows 98, Windows 2000 oraz nowe dystrybucje Linuksa. Dostęp do danych przechowywanych na dyskach z najnowszym systemem plików nie jest możliwy w przypadku Windows 95 oraz MS-DOS w wersjach wcześniejszych niż 7.10.
System plików FAT32 ma następujące ulepszenia w stosunku do wcześniejszych systemów FAT16 i FAT12:
Obsługuje dyski o pojemności do 2 terabajtów (FAT16 obsługuje dyski do 2 gigabajtów)
Efektywniej wykorzystuje powierzchnię dysku do składowania danych.
FAT32 używa mniejszych jednostek alokacji plików (ang. cluster) niż FAT16. Jednostka alokacji pliku (JAP) to najmniejszy fragment dysku, jaki może zajmować pojedynczy zbiór dyskowy.
Nawet jeśli zbiór dyskowy jest zerowej długości (pusty), to system plików przydziela mu cała jednostkę alokacji plików. W systemach plików o dużej jednostce alokacji pliku (np. w systemie FAT16 utworzonym w partycji o rozmiarze powyżej 1 GB JAP ma rozmiar 32 KB) zawierających dużą liczbę małych plików marnowana jest z tej przyczyny znaczna część powierzchni dysku.
Poniższa tabela przedstawia zmianę rozmiaru JAP w systemach FAT16 i FAT32 w zależności od rozmiaru partycji:
FAT16 | FAT32 |
Rozmiar partycji | Rozmiar JAP | Rozmiar partycji | Rozmiar JAP |
<128MB | 2 KB | <260 MB | 512 bajtów |
128 MB - 256 MB | 4 KB | 260 MB - 8 GB | 4 KB |
256 MB - 512 MB | 8 KB | 8 GB - 16 GB | 8 KB |
512 MB - 1 GB | 16 KB | 16 GB - 32 GB | 16 KB |
1 GB - 2 GB | 32 KB | >32 GB | 32 KB |
Jest bardziej odporny na błędy
FAT32 posiada zdolność relokacji głównego katalogu dysku oraz może używać kopii tablicy alokacji plików (FAT) zamiast domyślnej alokacji. Ponadto rekord startowy (ang. Boot record) partycji zawierającej system FAT32 zawiera kopię kluczowych danych opisujących strukturę systemu plików.
Jest elastyczniejszy
Główny katalog dysku w systemie FAT32 jest zwykłym łańcuchem jednostek alokacji plików, co pozwala na jego umieszczanie w dowolnym miejscu na powierzchni dysku. Dzięki temu nie ma ograniczenia na liczbę pozycji (katalogów lub plików) w głównym katalogu dysku. Ponadto FAT32 pozwala na wyłączenie synchronizacji zawartości tablic alokacji plików oraz na używanie innej tablicy alokacji niż domyślna. Ta cecha umożliwia dynamiczną zmianę rozmiaru partycji zawierającej FAT32.
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).
HPFS-High Performance File System
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.
HPFS został zaprojektowany przez IBM i Microsoft pod koniec lat osiemdziesiątych, dla potrzeb nowoczesnego systemu operacyjnego, realizowanego podówczas wspólnie przez obydwie firmy - OS/2. W przeciwieństwie do FAT - wymyślonego w 1977 r. do obsługi dyskietek - HPFS był od początku przeznaczony od efektywnej obsługi dysków twardych, i to dużych - teoretyczna granica wielkości woluminu (nb. ostatnio dodatkowo podniesiona) już wówczas wynosiła 2199 GB. 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.
Dysk podzielony jest na tzw. pasma po 8 MB (16384 sektory) zawierające bitową mapę zajętości sektorów w paśmie (32 sektory). Dzięki naprzemiennemu ułożeniu map w kolejnych pasmach tworzone są ciągłe odcinki po 16 MB, rozdzielone mapami dwu kolejnych pasm. Jedno pasmo, położone możliwie blisko geometrycznego środka dysku, zarezerwowane jest do przechowywania opisów katalogów, w tym katalogu głównego - po jego wypełnieniu katalogi mogą być zakładane również w innych miejscach dysku.
Kluczową dla HPFS strukturą danych jest tzw. Fnode, czyli położony możliwie blisko samego pliku rekord opisujący parametry i położenie pliku (lub katalogu). Jeżeli jest on nie wystarczający do opisu położenia lub tzw. atrybutów rozszerzonych, na dysku tworzone są dodatkowe struktury pomocnicze.
Zawartość katalogów jest posortowana, zapisywana w blokach o wielkości 2 KB, tworzących strukturę tzw. sterty (posortowanego, binarnego drzewa zrównoważonego). Znacznie przyspiesza to wyszukiwanie i dostęp do pliku, ale spowalnia tworzenie, kasowanie i zmianę nazwy - wymuszają one reorganizację struktury katalogu. HPFS umożliwia operowanie długimi nazwami (do 256 znaków), kompletem dat (utworzenia, ostatniej modyfikacji i ostatniego dostępu), prawami dostępu oraz tzw. atrybutami rozszerzonymi, mogącymi przechowywać dowolne informacje wykorzystywane przez system plików lub aplikację - takie jak np. ikona pliku czy położenie okna na ekranie. Gromadzone są też informacje statystyczne pozwalające na zoptymalizowanie pracy cache'a dyskowego.
W przeciwieństwie do FAT, HPFS definiuje nie tylko ułożenie danych na dysku, ale także sposób korzystania z niego - wbudowany cache, mechanizmy minimalizowania fragmentacji itp. Zdefiniowane są też mechanizmy ochrony przed uszkodzeniem: weryfikacja zapisu, hotfix (przenoszenie "na gorąco" zawartości uszkodzonych sektorów do obszaru rezerwowego), wbudowany CHKDSK, automatyczna kontrola struktury dysku w przypadku wykrycia nieprawidłowego zakończenia pracy systemu.
Specjalne identyfikatory kluczowych wewnętrznych struktur danych oraz dublowanie niektórych informacji w różnych strukturach (np. początkowych fragmentów nazw plików w katalogu i Fnode) umożliwiają natomiast automatyczne odtworzenie struktury dysku nawet w przypadkach ciężkich awarii.
NTFS (NT File System) - Windows NT
Ten system plików należy do podstawowych składników bezpieczeństwa Windows NT. Partycja NTFS rozpoczyna się klasycznym sektorem inicjującym. Nie jest to, jakby sugerowała nazwa, pojedynczy sektor, ale może być to nawet 16 pierwszych sektorów (zależnie od potrzeb systemu).
Po sektorze inicjującym występuje tzw. nadrzędna tabela plików (MFT - Master File Table), czyli po prostu indeks plików systemowych (ich nazwy zaczynają się od znaku "$"). W aktualnej wersji systemu NT na pliki systemowe wymienione w MFT składają się:
- kopia MFT;
- plik logów;
- informacje o wolumenie (w tym etykieta wolumenu i numer wersji NTFS);
- tablica definicji atrybutów (nazwy, numery identyfikacyjne, objaśnienia);
- katalog główny;
- mapa bitowa klastrów (opis zajętości partycji);
- kopia boot sektora partycji;
- tabela uszkodzonych klastrów;
- tabela konwersji małych liter na duże odpowiedniki Unicode.
Poza tym tabela MFT zawiera 6 wolnych pozycji (zapisów), które mogą zostać wykorzystane w przyszłości. Jak można wywnioskować na podstawie budowy MFT system NTFS podobnie jak FAT opiera się na klastrach. Jednak rozmiar klastra ustalamy tutaj dość swobodnie - od 0,5 KB do 64 KB.
W podanym przy FAT przykładzie (partycja 2 GB) domyślny rozmiar klastra wynosi 4 KB - czyli 8 razy mniej niż w poprzednim przypadku FAT.
Oprócz zaawansowanego, elastycznego systemu bezpieczeństwa jedną z bardziej interesujących cech NTFS jest mechanizm kompresji "w locie". Jednak w odróżnieniu od rozwiązań typu DriveSpace (dla VFAT) możemy kompresować nie tylko całe wolumeny, ale nawet w standardowo niekompresowanym wolumenie pojedyncze pliki lub katalogi.
To, czy dany element ma być kompresowany ustala się za pomocą klasycznego ustalania atrybutów (w ten sam sposób jak ustala się atrybut "tylko - do - odczytu" czy też "ukryty"). Jedynym ograniczeniem kompresji NTFS jest to, że rozmiar klastra nie może być większy niż 4 KB.
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.
początek
Wracamy do głównej :)