Organizacja zapisu na dysku

Organizacja zapisu na dysku.

W Dysku może popsuć sie wiele elementów z różnych powodów
zdjęcie z pixbay poprzez pexels

Wyłączenie komputera w nieodpowiednim momencie, zawieszenie się programu lub inna sytuacja awaryjna podczas operacji dyskowych może prowadz­ić do powstania niespójności w zapisie dotyczącym sposobu rozmieszczenia plików na dysku.

Obszar dysku przeznaczony do zapisu widziany jest przez system ope­racyjny jako ciąg „komórek” o jednakowej pojemności. Komórka ta nazywana jest jednostką alokacyjną.

W przypadku dyskietki jednostką alokacyjną jest jeden sek­tor, czyli 512B. Dla dysku twardego jednostka alokacyjna składa się z kilku sek­torów – zależnie od pojemności napędu. Aby kontrolować, która z jednostek alokacyjnych jest wolna, a która zajęta, MS-DOS tworzy specjalną tablicę z pozyc­jami odpowiadającymi każdej sekcji na dysku. Tablica ta znana jest pod nazwą FAT. Dla dyskietki stosowana jest 12-bitowa tablica FAT. Oznacza to, że liczba pozycji w takiej tablicy nie może przekroczyć wartości 4096 (2 do potęgi 12).W przypadku dysków twardych stosuje się najczęściej większą tablicę 16-bitową. Tablica tego rodzaju wykorzystywana jest dla dysków od kilkudziesięciu do kilkuset MB. Aby obsłużyć dyski o większej pojemności, stosuje się odpowiednio większą jednostkę alokacyjną.

Tablica FAT

Wartość zero wpisana w element tablicy FAT wskazuje, że dana sekcja jest pusta. Wartość różna od zera informuje o wykorzystaniu sekcji lub jej uszko­dzeniu i zablokowaniu zapisu. Zapisywane na dysku pliki zajmują zwykle więcej miejsca niż długość jednej sekcji. Poszczególne pozycje tablicy FAT, odpo­wiadające konkretnemu plikowi, tworzą listę,

tj. strukturę, w której jeden element tablicy wskazuje następny. Zapis o pliku w katalogu posiada numer pierwszego elementu listy. Następne pozycje listy zapisane są już w tablicy FAT. Wskaźnikiem końca takiego łańcucha jest dla 16-bitowej tablicy FAT liczba FFFh (65536) zaś dla 12-bitowej FFFh.

W praktyce najczęściej występują dwa rodzaje przekłamań: zgubienie sekcji (ang. Lost allocation units) oraz kolizja list (ang. Cross-linked fites). Rysunek przedstaw­ia schematycznie przyczyny powstawania tego rodzaju błędów. W przypadku zgubienia sekcji, znacznik końca listy wpisany jest zbyt wcześnie. W ten sposób część sekcji, nie należąc do żadnego pliku, alokuje jednocześnie miejsce na dysku. Odwrotna sytuacja występuje w przypadku kolizji listy, gdy te same sekcje dysku wykorzystywane są przez dwa lub większą liczbę plików.

Powstawania na dysku łańcuchów zagubionych sekcji  

Kolizja listy FAT 

 

Przekłamanie można próbować usunąć ręcznie, jeżeli mamy do czynienia z własnoręcznie przygo­towywanymi dokumentami tekstowymi. W większości wypadków przywrócenie pliku do stanu sprzed uszkodzenia jest praktycznie niemożliwe, o ile nie po­siadamy jego kopii zapasowej.

Zaletą systemu zapisu plików stosowanego przez MS-DOS jest to, że obszary udostępnione po skasowaniu plików mogą być ponownie wykorzys­tane. Kasowanie plików powoduje jednak powstawanie na dysku wolnych obszarów w różnych przypadkowych miejscach. Te miejsca wykorzystane są później do zapisu innych plików. Taka sytuacja jest przyczyną „rozdrobnienia” zapisu, które z czasem narasta powodując spowolnienie operacji dyskowych. Zjawisko to określane jest mianem fragmentacji. System MS-DOS 6.0 posiada specjalny program DEFRAG przeznaczony do jej usuwania. Po uruchomieniu program analizuje sposób rozmieszczenia plików na dysku i w miarę potrzeby przenosi odpowiednie ich fragmenty w inne miejsca tak, by były one zapisane

w jednolitych obszarach, tj. kolejne sekcje wykorzystane przez plik znajdują się jedna za drugą. DEFRAG może usunąć fragmentację plików pozostawiając wolne miejsca między poszczególnymi plikami lub przesuwać je w ten sposób, by zapełnić wszystkie, następujące po sobie sekcje na dysku.

Dyski logiczne

Omawiając organizację zapisu na dyskach twardych warto wspom­nieć o możliwości jego podziału na logiczne części, które funkcjonują jako niezależne napędy C, D, E, itd. Opcja tego typu istniała już we wczesnych wersjach systemu MS-DOS jednak była rzadko wykorzystywana ze względu na stosunkowo małe pojemności napędów, nie przekraczające zwykle 20-40MB. Wraz ze spadkiem cen na dyski twarde zwiększyła się także pojem­ność typowo stosowanych napędów. Wielu z użytkowników, w celu lepszej organizacji zapisu, decyduje się na ich podział na mniejsze części, tzw. partycje. Podzielenie całości dysku twardego na mniejsze części ma swoje zalety i wady. W systemie komputerowym, prócz oddzielnych partycji, mogą wys­tępować dyski skompresowane, wirtualne (założone w części pamięci opera­cyjnej) i oczywiście elastyczne. Zbyt duża liczba napędów logicznych może utrudniać poruszanie się w systemie. Dodatkowo, wiele współczesnych pro­gramów wymaga przy instalacji kilku lub kilkunastu megabajtów pamięci. Podzielenie dysku na zbyt małe partycje powoduje, że można będzie tam umieś­cić niewiele takich aplikacji, a pozostawioną wolną część trudno jest w rozsądny sposób zagospodarować. Korzyścią płynącą z odpowiedniego podziału dysku na partycje jest lepsze wykorzystanie jego pojemności.

Rozważmy przykładowo plik tekstowy zawierający jedno zdanie złożone ze 150 znaków, które jest za­pisane na partycji o wielkości 128 MB. W rzeczywistości plik ten wykorzystuje nie 150 wolnych bajtów dysku, ale aż 4 KB, czyli jedną pełną jednostkę alokacyjną. Podobna sytuacja występuje także w przypadku większych plików, gdzie ostatnie sekcje nie są zwykle wypełnione całkowicie. Jeżeli założymy, że przeciętnie każda ostatnia sekcja zajmowana przez plik jest wykorzystywana tylko w połowie, to łatwo wyznaczyć, jak duże „straty” ponosimy z tego powodu. Jeżeli jednostka alokacyjna na tym dysku twardym wynosi 8 KB, to przy każ­dym pliku tracimy statystycznie 4 KB. Dla dużej liczby krótkich plików niemożliwa do wykorzystania pojemność, wynikająca z opisanej specyfiki zapisu, może wynosić nawet kilka megabajtów. Z tego względu oczywistym wydaje się fakt, że zamiast jednej partycji 250 MB lepiej jest stosować dwie mniejsze.

Partycje

W zmniejszaniu partycji nie należy się jednak zbytnio zagalopować. Przy ustalaniu małych partycji, poniżej 16MB, warto pamiętać, że posiadają one relatywnie dużą jednostkę alokacyjną wynikającą ze zmniejszenia liczby pozycji w tablicy FAT.

Do zmiany wielkości partycji, kasowania starych i zakładania no­wych służy program

o nazwie FDISK. Program ten należy używać ze szczególną ostrożnością. Należy pamiętać, że skasowanie istniejącej partycji wiąże się z natychmiastową utratą wszystkich danych zgromadzonych na danym dysku logicznym. Po jej skasowaniu system przestaje rozpo­znawać istniejący dotychczas napęd. Z tego względu ustalenie organizacji dysku twardego najbezpieczniej jest przeprowadzać na dysku fabrycznie nowym, jeszcze przed instalacją systemu operacyjnego. Zmianę wielkości partycji można przeprowadzić również i później. Należy jednak bezwzględnie pamiętać o zapisaniu na innym nośniku wszystkich plików, których nie będzie można po tej operacji odtworzyć z dysku twar­dego. Po instalacji systemu operacyjnego program FDISK dla bezpieczeństwa najlepiej jest w ogóle usunąć z dysku lub przynajmniej nadać każdemu napę­dowi logicznemu unikatową nazwę (etykietę). W tym przypadku, przed wykonaniem jakiejkolwiek operacji potencjalnie zagrażającej naszym danym, program FDISK poprosi nas o wpisanie właści­wej nazwy dysku. Ta sama nazwa chroni nas również przed przypadkowym, powtórnym sformatowaniem dysku twardego.Przy większej liczbie partycji na dysku program FDISK pozwala również na zmianę partycji aktywnej, tj. takiej, z której następuje uruchamianie systemu operacyjnego po uruchomieniu komputera. Ta cecha polecenia FDISK może być wykorzystywana na komputerach z zainstalowanymi kilkoma różnymi systemami operacyjnymi. Pokonaniu tej operacji i restarcie komputera uruchamiany system operacyjny będzie pochodził z partycji aktywnej.