Instrukcja laboratoryjna
Systemy operacyjne
sem. 1
wiczenie szóste
Temat: System plików FAT12
Opracował:
mgr inż. Arkadiusz Chrobot
1. Wstęp
Najprostszą wersją nośnika magnetycznego o swobodnym dostępie jest
dyskietka. Informacje na niej przechowywane są w sektorach o pojemności
512B każdy. Sektory są zorganizowane w ścieżki, które mają postać okręgów.
Ścieżki są koncentrycznie ułożone po obu stronach elastycznego dysku1. Aby
więc znalezć jakiś dane na dyskietce należy podać trzy współrzędne: numer
sektora na ścieżce, numer ścieżki na stronie i numer głowicy obsługującej
stronę. Większość systemów operacyjnych tworzy abstrakcyjną strukturę
zwaną systemem plików, której zadaniem jest ułatwienie zarządzania i
posługiwania się informacjami zapisanymi na dyskietce. W przypadku systemu
DOS jest to system FAT12. Jego działanie jest oparte o tablicę alokacji plików
(ang. file allocation table). W pierwszym sektorze dyskietki (oprócz programu
ładującego) znajduje się MBR (ang. Master Boot Record) rekord zawierający
informacje o organizacji logicznej nośnika, takie jak: wielkość sektorów w
bajtach, liczba sektorów na ścieżce, maksymalna liczba plików w katalogu
głównym, liczba sektorów zajmowanych przez tablicę alokacji pliku, liczba kopii
tablicy alokacji i inne. Za MBR znajdują się tablice alokacji pliku. Sektory
fizyczne mają dwie wady: aby zaadresować jeden z nich należy podać trzy
liczby, ponadto mają one małą pojemność. System DOS stosuje więc większe
jednostki, nazywane Jednostkami Alokacji Pliku (JAP) lub klastrami (od
angielskiego: cluster). Powstają one z połączenia kilku sektorów w jedną całość.
W przypadku FAT12 jednostka alokacji pliku odpowiada dokładnie rozmiarowi
jednego sektora. Aby uniknąć skomplikowanego adresowania system stosuje
linearyzację, czyli przeliczanie zestawu trzech współrzędnych na jedną. Indeksy
tablicy alokacji plików są właśnie liniowymi numerami każdej z jednostek
alokacji, natomiast wartości opisują zawartość tych jednostek. Załóżmy, że
pewien plik jest umieszczony w następujących klastrach: 8, 12, 17, 24. W
tablicy alokacji plików, pod indeksem 8 będzie zapisana wartość 12, pod
indeksem 12 wartość 17, pod 17 wartość 24, a pod 24 wartość oznaczająca
ostatnią jednostkę przydzieloną plikowi. W systemie FAT12 zdefiniowano
również wartości specjalne określające np. obszar uszkodzony. Należy
pamiętać, że zarówno wartości, jaki i indeksy w tej tablicy są dwunastobitowe2 i
należy je odczytywać w następujący sposób:
Pomnóż numer JAP przez 1,5.
Część całkowita określa numer bajta od początku FAT zawierającego
1 Ścieżki znajdujące się w tym samym miejscu, ale po przeciwnych stronach dyskietki tworzą
cylinder.
2 Stąd liczba 12 w nazwie systemu plików. Oprócz niego istnieją również inne jak np.: FAT16,
FAT32.
2
numer kolejnej FAT.
Odczytaj wskazany i następny bajt.
Zamień kolejność tych bajtów.
Jeśli ostatni numer JAP był parzysty to wez 12 mniej znaczących bitów
otrzymanego w poprzednim kroku słowa, w przeciwnym przypadku, 12
najbardziej znaczących bitów.
Tak otrzymana liczba wskazuje numer kolejnej JAP.
Za tablicami FAT znajduje się obszar katalogu głównego dyskietki (korzenia).
Każda pozycja tego katalogu jest strukturą zawierającą nazwę pliku wraz z
rozszerzeniem, jego atrybuty, czas i datę jego utworzenia lub aktualizacji,
numer pierwszej JAP przydzielonej plikowi, oraz rozmiar pliku. Czas
przeliczony jest według następującego wzoru:
czas = godziny * 2048 + minuty * 32 + sekundy/2,
natomiast data jest otrzymywana poprzez przekształcenie:
data = (rok-1980)*512 + miesiąc*32 + dzień.
2. Zadania
1. [4 punkty] Napisz program, który odczyta zawartość MBR i wyświetli na
ekran takie informacje, jak: wielkość sektora w bajtach, liczba sektorów
w JAP, liczba kopii tablicy FAT, maksymalna liczba plików w katalogu
głównym, liczba sektorów zajętych przez tablicę FAT, liczba stron dysku,
liczba sektorów na ścieżce.
2. [4 punktów] Korzystając z informacji dostarczonych przez poprzedni
program napisz program, który wyświetli mapę dyskietki na ekranie, tzn.
barwnymi znakami opisze które jednostki alokacji są zajęte, które puste,
a które uszkodzone.
3. [4 punkty] Napisz program, który wyświetli na ekran zawartość katalogu
głównego dyskietki, tzn. każdą pozycję opisującą plik, wraz ze wszystkimi
zawartymi w niej informacjami datę i godzinę należy przeliczyć na
wartości zrozumiałe przez człowieka.
Uwaga, we wszystkich programach należy użyć przerwań BIOSu do odczytu
zawartości dyskietki.
3
Wyszukiwarka
Podobne podstrony:
SO instrukcja 1SO instrukcja 4SO instrukcja 5SO instrukcja 3instrukcja prezentacja2instrukcja bhp przy obsludze euro grillaDS1000PL InstrukcjaBlaupunkt CR5WH Alarm Clock Radio instrukcja EN i PLInstrukcja do cwiczenia 4 Pomiary oscyloskopoweInstrukcja F (2010)Instrukcja Programowania Zelio Logic 2 wersja polskaInstrukcja kociol MODERATOR 75 200kW plwięcej podobnych podstron