Операционные Системы

 

Калужский филиал государственного образовательного учреждения высшего профессионального образования «Московский государственный технический университет имени Н.Э. Баумана»

 

Отчёт

по лабораторной работе №4 по курсу

Операционные Системы

«Файловая система FAT»

Выполнил студент: Филиппов Д.В.

Группа:УТС.Б-41

Принял: Макаренков А.М.

 

 

Калуга 2013

Цель работы: Изучение организации данных в файловых системах ОС на примере файловой системы FAT.

Теоретическая часть

В файловой системе FAT принята следующая структура размещения информации на дискете 3,5” (1,44 Мбайт). На данном типе носителя используются две стороны: одной стороне (нижней) присвоен номер 0, другой стороне (верхней) – 1. На каждой стороне имеется по 80 дорожек в виде концентрических колец, нумеруемых от 0 до 79. Каждая дорожка разбита на 18 равных частей – секторов, нумеруемых от 1 до 18. Таким образом, общее количество секторов на диске - 2880 (80x18x2). В одном секторе может храниться 512 байт полезной информации. Сектор является наименьшей неделимой частью при обмене информацией с дисковым накопителем.

В процессе форматирования дискеты в определенные места каждой дорожки записывается служебная информация, предназначенная для того, чтобы аппаратура адаптера дисковода могла однозначно определить позицию головки чтения/записи на дорожке, в нужное время переключиться с поиска нужного сектора на запись или чтение поля данных и проверить достоверность записанных и прочитанных данных. Все операции записи данных сопровождаются накоплением и записью в конце поля данных двух байтов контрольной суммы, иначе называемой кодом циклического контроля (CRC – Cyclic Redundancy Check).

Представим диск как непрерывную последовательность секторов в виде прямоугольников, следующих друг за другом (рис. 3.1). Сектора объединяются в кластеры. Количество секторов в кластере зависит от формата носителя. Например, для дискет формата 1,44 Мбайт в кластер входит один сектор размером 512 байт. Кластер – минимальная часть диска, резервируемая для одного файла. Это означает, что даже если файл состоит всего из 1 байта, а размер кластера составляет 32 Кбайт (такой размер кластера может использоваться для носителей большого объема, например, для жестких магнитных дисков), то под этот файл на диске будет выделено 32 Кбайт.

Назначение каждого сектора на диске строго фиксировано и зависит от выбранного формата носителя. Далее будем рассматривать только формат дискеты объемом 1,44 Мбайт. В первом секторе нулевой дорожки (дорожки нумеруются от края диска), имеющем номер 0, нулевой стороны диска (нижняя сторона) располагается программа начальной загрузки (Boot Record). В 1-9 секторах находится таблица размещения файлов FAT (Files Allocation Table), давшая название рассматриваемой файловой системе. В связи с важностью FAT-таблицы она дублируется. Сама FAT-таблица находится в 1-9 секторах, а ее копия – в 10-18 секторах. В 19-32 секторах размещается корневой каталог диска. Из-за ограниченности числа секторов, выделенных для корневого каталога, в нем может храниться ограниченное число записей о файлах и подкаталогах. Для подкаталогов такого ограничения не существует, так как для них может выделяться произвольное число секторов, связанных друг с другом с помощью FAT-таблицы (см. далее). Если диск системный (т.е. с него может быть загружена ОС), то начиная с 33 сектора на нем располагаются системные файлы и утилиты. Для несистемного диска с 33 сектора располагаются файлы пользователя.

Информация о файлах в каталоге хранится в виде записей. Каждая запись (рис. 3.1) состоит из 32 байт и описывает один файл или подкаталог.

Подкаталог состоит из аналогичных записей за исключением первых двух специальных записей. В первой из этих записей содержатся сведения о самом подкаталоге (имя этой записи – "."), во второй – о предшествующем (родительском) каталоге (имя этой записи – "..").

В 26-м и 27-м байтах записи хранятся сведения о размещении первого кластера файла, описываемого данной записью. Дальнейшие сведения можно получить в FAT-таблице, которая определяет фактическое размещение файла на диске.

Каждый элемент FAT-таблицы (см. рис. 3.1) соответствует одному кластеру на диске (номер элемента FAT ассоциирован с номером кластера) и может содержать следующую информацию:

- кластер свободен (шестнадцатеричный код 000h);

- кластер занят и имеется ссылка на кластер продолжения (002-B20h);

- кластер занят и имеется признак конца файла - "EOF" (FFFh);

- кластер поврежден - "BAD" (FF7h).

(Два первых элемента FAT содержат служебную информацию и не используются для указания на кластеры.)

В зависимости от типа диска элемент может содержать 12 или 16 бит (имеется также версия файловой системы FAT c 32-разрядными элементами FAT-таблицы, известная как FAT32, которая используется для носителей большого объема). Для рассматриваемой дискеты FAT-таблица состоит из 12-битовых элементов, которые образуют динамическую структуру данных, называемую односвязным списком. Элемент каталога содержит номер кластера для первого кластера в цепочке. Элемент FAT-таблицы, соответствующий этому кластеру, либо указывает на конец цепочки, либо ссылается на следующий элемент и т.д.

 

Практическая часть

1. Подготовить пустую отформатированную дискету (команда “format /u A:”).

2. Стандартными средствами ОС (например, с помощью встроенных команд MS DOS для работы с файлами и подкаталогами) создать на этой дискете несложную иерархическую структуру подкаталогов, например, такую:

Корневой каталог

|

SUB1

/

SUB2 SUB3

 

и записать в каждый подкаталог несколько произвольных файлов.

 

3. С помощью программы Disk Edit и приведенного выше описания изучить логическую структуру данных на дискете и описать ее в виде схемы (подобно тому, как это сделано на рис.3.1) для конкретного случая структуры, созданной в п.2.2. На схеме обязательно указать номера кластеров и размеры файлов.

 

4.С помощью только средств программы Disk Edit создать "вручную" на дискете (не удаляя структуры, созданной ранее в п.2.2, а используя ее в качестве образца) аналогичную иерархическую структуру из нескольких подкаталогов.

5. Создать только средствами Disk Edit в одном из подкаталогов структуры, полученной в п.3.1, файл и выполнить над ним (опять только с помощью Disk Edit) все стандартные файловые операции: переименование, копирование, удаление.

 

2.Стандартными средствами ОС (например, с помощью встроенных команд MS DOS для работы с файлами и подкаталогами) создать на этой дискете несложную иерархическую структуру подкаталогов.

 

 

Рис. 1.Иерархическая структура подкаталогов.

 

 

 

Рис. 2.Схема организованной иерархической структуры

 

 

3. С помощью программы Disk Edit изучить логическую структуру данных на дискете и описать ее в виде схемы для конкретного случая структуры, созданной в п.2.2. На схеме обязательно указать номера кластеров и размеры файлов.

 

 

 

 

Рис. 3. Структура записи 001

 

 

 

Рис. 4.Структура записей 001-005

 

 

Рис. 5.Содержание элемента FAT таблицы, связанного с SUB1

 

 

 

 

Рис. 6.Структура записей 001-003

 

 

Рис. 7.Структура FAT таблицы, ассоциированной с SUB2

 

 

 

 

Рис. 8.Структура записей 001-003

 

 

Рис. 9.Структура FAT таблицы, ассоциированной с SUB3

 

 

4.С помощью только средств программы Disk Edit создать "вручную" на дискете (не удаляя структуры, созданной ранее в п.2, а используя ее в качестве образца) аналогичную иерархическую структуру из нескольких подкаталогов.

 

Рис. 10.Созданный вручную каталог

Для того, чтобы создать аналогичную архитектуру каталогов с помощью DiskEdit необходимо в корневом каталоге создать запись с желаемым именем каталога. В элементе FAT таблицы, ассоциированном с первым кластером каталога поставить метку <EOF>. Внутри самого же каталога, необходимо создать 2 записи – «.» и «..» ссылающиеся на данный каталог и на родительский.

 

Рис. 11.Созданная иерархическая структура каталогов.

 

 

Рис. 12.Схема созданной структуры

 

 

Рис. 13.Вид записей 001-002 коревого каталога

Рис. 14.Вид записей 001-004 каталога SUB1DE

 

 

Рис. 15.Вид записей 001-002 каталога SUB2DE

 

 

Рис. 16.Вид записей 001-002 каталога SUB3DE

 

5. Создать только средствами Disk Edit в одном из подкаталогов структуры, полученной в п.4, файл и выполнить над ним (опять только с помощью Disk Edit) все стандартные файловые операции: переименование, копирование, удаление.

 

Для создания файла в одном из каталогов(SUB2DE) необходимо в самом каталоге создать запись о желаемом файле, указав его имя, расширение, размер, начальный кластер

 

Рис. 17.Создание записи о файле

Далее необходимо посчитать, сколько кластеров потребуется для размещения файла (в данном случае 3) и внести изменения в FAT таблицу, начиная с первого кластера файла

 

 

Рис. 18.Редактирование FAT-таблицы

 

Для переименования файла достаточно изменить поле NAME в записи, сделанной в соответствующей директории.

 

 

Рис. 19.Переименование файла

 

Для копирования файла необходимо создать новую запись (зд. в каталоге SUB3DE) с указанием того же размера, что и копируемый файл, занести изменения в FAT таблицу

 

 

Рис. 20.Создание записи для копирования

Далее необходимо скопировать содержимое записей желаемого файла

 

 

Рис. 21. Копирование данных файла

 

И записать их в записи приготовленной ранее копии

 

 

Рис. 22.Завершение копирования

 

 

Для удаления файла необходимо очистить записи его данных, очистить запись о файле в каталоге, в котором он находился, очистить значения элементов FAT таблицы, ассоциированных с кластерами файла

 

 

 

 

Рис. 22.Алгоритм удаления файла