Lab6 Spr Sprawozdanie 6

Sprawozdanie z laboratorium: 6

Temat: System plików FAT12.

Prowadzący: mgr inż. Arkadiusz Chrobot

Grupa 211A: Dariusz Kamiński, Bartosz Jackowski



I Wstęp:

System plików to abstrakcyjna struktura, która ma za zadanie ułatwić i ujednolicić dostęp i zarządzanie danymi zapisanymi na rożnych typach nośników. W przypadku MS-DOS, dla dyskietki jest to FAT12 oparty o tablice alokacji plików (File Allocation Table). Dane na dyskietce są przechowywane w sektorach o pojemności 512B. Z sektorów składają się ścieżki – umieszczone na dyskietce w postaci okręgów, umieszczane po obu stronach dyskietki. Aby odwołać się do konkretnych danych należy podać trzy współrzędne: numer głowicy (strony dyskietki), numer ścieżki i sektora na ścieżce. Numer sektora logicznego określa się następująco:

- ((nr ścieżki)*(liczba głowic) + nr głowicy)*(liczba sektorów na ścieżce) + nr sektora na ścieżce

W pierwszym sektorze dyskietki znajduje się MBR (Master Boot Record), który zawiera informacje o organizacji nośnika: liczba sektorów, ich rozmiar, liczba głowic.. itp. Za MBR znajdują się tablice alokacji plików FAT – struktury określające, które jednostki przydziału należą do danego pliku. Każda pojedyncza JAP (Jednostka Alokacji Pliku – Jednostka Przydziału) zawiera informacje takie jak: numer kolejnej JAP należącej do pliku, typ JAP (zajęta, wolna, uszkodzona). W przypadku FAT12 wartości i indeksy w FAT i JAP są 12-sto bitowe. Sposób wyznaczania kolejnej JAP:

- Pomnóż numer JAP przez 1,5.

- Część całkowita określa numer bajta od początku FAT zawierającego numer kolejnej FAT.

- Odczytaj wskazany i następny bajt.

- Zamień kolejność tych bajtów.

- Jeśli ostatni numer JAP był parzysty to weź 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ę katalog główny dyskietki. Każda 32B pozycja zawiera informacje o nazwie, typie, atrybutach, uprawnieniach dostępu, czasie i dacie utworzenia obliczane i zapisane następująco:

- czas = godziny * 2048 + minuty * 32 + sekundy/2,

- data = (rok-1980)*512 + miesiąc*32 + dzień.


F

E

D

C

B

A

9

8

7

6

5

4

3

2

1

0

godzina

minuta

sekunda/2


F

E

D

C

B

A

9

8

7

6

5

4

3

2

1

0

rok

miesiąc

dzień




II Przebieg Ćwiczeń:

Do samodzielnego wykonania mieliśmy 3 zadania, wykonaliśmy wszystkie:


Ćwiczenie 1 (zad1.pas):

Napisać program, który odczyta zawartość MBR i wyświetli na ekran niektóre informacje. W procedurze „odczytMBR”, do której przekazujemy zmienną buforową jako parametr, dokonujemy odczytu zawartości pierwszego sektora dyskietki. Używamy funkcji 02H przerwania 13H, a do odpowiednich rejestrów przekazujemy następujące dane: AL – liczba sektorów, CX – numer ścieżki i sektora, DL – numer napędu (0 dla dyskietki), DH – numer głowicy, a do ES:BX – adres bufora za pomocą znanych już i używanych na wcześniejszych laboratoriach funkcji pascalowych „seg” i „ofs”. Bufor musi mieć odpowiednią strukturę odpowiadającą strukturze MBR. Po odczycie sprawdzamy wartość znacznika CF: jeżeli jest wyzerowany znaczy to, że wszystko przebiegło dobrze, w przeciwnym wypadku kod błędu zwracany jest w AH. Następnie wyświetlamy na ekran podstawowe informacje z bufora.



Ćwiczenie 2 (zad2.pas).

Napisać program, który wyświetli mapę dyskietki na ekranie. Użyliśmy zmodyfikowanej procedury „odczytMBR” – pominęliśmy etap wyświetlania informacji z MBR, oraz trzech nowych:

Procedura „odczyt_sek” – do której przekazujemy jako parametry: adres bufora, ilośc sektorów do odczytania oraz trzy współrzędne do lokalizacji sektora. Działa ona w sposób prawie identyczny co wcześniejsza procedura z tym, że zmienił się typ bufora oraz dane potrzebne do odczytu konkretnych sektorów nie są ustawiane na sztywno, lecz przekazywane do procedury.

Procedura „kolor” – wyświetla odpowiedniego koloru znaki w zależności od wartości parametru do niej przekazanego. Służy do identyfikacji typu JAP – czy jest uszkodzony, zajęty .. itp.

Funkcja „nast_JAP” – wylicza i zwraca numer kolejnej jednostki alokacji pliku w oparciu o dane do niej przekazywane: parzystość poprzednio odczytanego bajta danych, numer bieżącego bajta i bufor z którego należy czytać dane. Obliczeń dokonuje na podstawie algorytmu opisanego w wstępie.

W programie głównym odczytujemy zawartość MBR, później kolejnego sektora do bufora typu „Tbyte” który będzie od teraz zawierał numery JAP. Następnie iteracyjnie wyznaczamy kolejne JAP i wyświetlamy informacje o nich.



Ćwiczenie 3 (zad3.pas).

Napisać program, który wyświetli na ekranie zawartość katalogu głównego dyskietki. Tu używamy dwóch stosowanych w zadaniu drugim procedur: „odczytMBR” i „odczyt_sek” oraz trzech nowych:

Procedury „czas” i „data” przeliczają odpowiednio czas i datę utworzenia pliku na postać zrozumiałą i czytelną dla użytkownika. Sposoby odczytu godziny, minuty, sekundy, dnia, miesiąca i roku są do siebie podobne i wyglądają następująco:

Procedura „plik_info” służy do wyświetlania informacji o pliku, takich jak: nazwa, rozszerzenie, czas i data utworzenia, pierwsza jednostka przydziału.

W programie głównym dokonujemy odczytu MBR, następnie odczytu 14 sektorów zaczynających się od 2 sektora na 0 ścieżce, którą obsługuje 1 głowica – gdyż od tego miejsca zaczyna się katalog główny. Odczytujemy 14 sektorów, ponieważ każda pozycja ma rozmiar 32B, a pozycji jest 224, co jest równe 14 sektorom po 512B. Na ekran wyświetlamy tylko pozycje mówiące o plikach obecnych na dyskietce i rozmiarze większym od 0, ponieważ na dyskietce mogą się znajdować również pozycje częściowo zapisane np. po plikach usuniętych i systemowych.





III. Wnioski:

Wszystkie ćwiczenia przebiegły zgodnie z oczekiwaniami. Nie wystąpiły żadne komplikacje ani błędy.


Wyszukiwarka

Podobne podstrony:
spr.2, sprawozdania z mechaniki plynow
spr. 5, sprawozdania z mechaniki plynow
Sprawozdanie z ćwiczenia nr2, Polibuda, studia, Inżynieria Materiłowa, spr, sprawozdania inz mat, s
Pomiar mocy czynej spr, SPRAWOZDANIA czyjeś
spr.1, sprawozdania z mechaniki plynow
spr. 4, sprawozdania z mechaniki plynow
tob spr, SPRAWOZDANIA czyjeś
spr. 6(1), sprawozdania z mechaniki plynow
spr. 7, sprawozdania z mechaniki plynow
SPR B 6, Sprawozdanie z cwiczenia B 6
Lab 7 mikrofale spr, Sprawozdania, Technika mikrofalowa
spr. 3, sprawozdania z mechaniki plynow
spr. 6, sprawozdania z mechaniki plynow
spr. 8, sprawozdania z mechaniki plynow
spr - koag pow, Sprawozdania, oczyszczanie wody
ściskanie(lab), Studia, pomoc studialna, Sprawozdania Laborki, Wytrzymałość spr.nr2
Doświadczalne spr p. Malusa, sprawozdania, Fizyka - Labolatoria, Ćwiczenie nr70
Pomia napięcia powierzchniowego, Mechanika i Budowa Maszyn PWR MiBM, Semestr I, Fizyka, laborki, spr