lab6

Laboratorium
Systemy operacyjne

Ćwiczenie szóste

Temat: System plików FAT12

Prowadzący Wykonawcy:

mgr inż. Arkadiusz Chrobot Marcin Młynarczyk

Kamil Zwoliński

  1. Wstęp.

Zadaniem szóstych ćwiczeń laboratoryjnych było zapoznanie się z zarządzaniem i posługiwaniem się informacjami zapisanymi na dyskietce w systemie plików FAT12.


  1. Wykonanie.

System plików jest abstrakcyjną strukturą, której zadaniem jest ułatwienie zarządzania i posługiwania się informacjami zapisanymi na dyskietce. W przypadku systemu DOS jest to system FAT12. Informacje na dyskietce są przechowywane w sektorach o pojemności 512B. Sektory są zorganizowane w ścieżki, które mają postać okręgów. Ścieżki są koncentrycznie ułożone po stronach elastycznego dysku. Aby odczytać dane z dyskietki należy podać: numer sektora na ścieżce, numer ścieżki na stronie i numer głowicy obsługującej stronę.

Pierwszy sektor dyskietki zawiera MBR (Master Boot Rekord). MBR jest to rekord zawierający informacje o organizacji logicznej nośnika, takie jak: wielkość sektorów w bajtach, liczba sektorów na ścieżce, maksymalna ilość 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 plików FAT. Za tablicami FAT znajduje się obszar katalogu głównego dyskietki. 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 (Jednostka Alokacji Pliku) przydzielonej plikowi, oraz rozmiar pliku.

Zad.1

W zadaniu 1 należało napisać 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.


W tym programie używaliśmy przerwań BIOSu $13. W wierszach od 23 do 44 stworzyliśmy procedurę odczyt, która odczytuje sektor z dyskietki. W wierszu 26 do rejestru ah zostaje przypisany numer funkcji (02 w kodzie szesnastkowym) odczytującej sektor z dyskietki. W wierszu 27 do rejestru al przypisujemy 1, czyli ilość sektorów które chcemy odczytać. W wierszu 28 do rejestru ch przypisujemy numer cylindra. W wierszu 29 do rejestru cl przypisujemy 1 (numer sektora na ścieżce, który chcemy odczytać). W wierszu 30 do rejestru dh przypisujemy numer głowicy obsługującej stronę. W wierszu 31 do rejestru dl przypisujemy numer napędu. W wierszu 32 do rejestru es zapisujemy adres segmentu bufora, w wierszu 33 do rejestru bx adres offsetu bufora. Bufor jest rekordem odpowiadającym strukturze MBR. W wierszu 34 wywołujemy przerwanie. W wierszu 35 zostaje wykonane sprawdzenie czy podczas odczytu sektora nie wystąpił błąd, poprzez sprawdzenie ostatniego bitu w rejestrze flags (0-brak błędu, 1-wystąpił błąd). Wykonuje się to przez porównane zawartości rejestru flags ze stałą fcarry, która ma wartość 0001 (w kodzie szesnastkowym). Wykorzystuje się tu operator logiczny AND, który zwraca 1 jeśli obie porównywane wartości są prawdziwe.

  1. Wnioski.

W ciągu dwóch ćwiczeń laboratoryjnych udało nam się rozwiązać zadanie 1. Napisany przez nas program działał poprawnie.



Wyszukiwarka

Podobne podstrony:
lab6, SWBlab6
lab6
lab6
lab6 NHIP pyt
lab6 doc
Lab6 PSN cd 2015
AKiSO lab6
rownania nieliniowe, Automatyka i robotyka air pwr, VI SEMESTR, Notatki.. z ASE, metody numeryczne,
Lab6 5 id 260087 Nieznany
AK lab6 (2)
lab6 7
lab6
konspekt lab6 id 245555 Nieznany
Sprawozdanie EM lab6
lab6, Edukacja, ZiIP, sem. I, Podstawy programowania, Laborki i inne, Podstawy Programowania
lab6, MECHATRONIKA 1 ROK PWSZ, SEMESTR II, Metrologia techniczna i systemy pomiarowe, Laborki
Sprawozdanie kartka, AGH WIMIR AiR, Semestr 3, JPO, lab6 JPO
Lab6, Visual Basic Lab 6a, Visual Basic Lab 3
kurs matlaba, Lab6 KURS MATLAB 2003, KURS MATLABa