Читать реферат по информационному обеспечению, программированию: "Операционная система MS-DOS" Страница 4

назад (Назад)скачать (Cкачать работу)

Функция "чтения" служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!

файла

...

Номер первого кластера, распределенного файлу

autoexec.bat

...

11

config.sys

...

12

...

...

...

FAT - таблица

...

17

13

FFFF

00

00

00

18

FFFF

00

.....

кластер

11

12

13

14

15

16

17

18

19

Рис 1. Пример распределения кластеров для файлов autoexec.bat b config.sys

FAT - таблица может иметь 12- или 16-битовый формат. При этом в таблице для хранения информации об одном кластере диска используется соответственно 12 или 16 бит. 12-битовый формат удобен для дискет с небольшим количеством секторов - вся FAT - таблица помещается в одном секторе.

Первый байт FAT - таблицы называется описателем среды. Он имеет такое же значение , как и байт - описатель среды, находящийся в загрузочном секторе дика.

Следующие 5 байт для 12-битового формата или 7 байт для 16-битового формата всегда содержат значение 0FFh.

Остальная часть FAT - таблицы состоит из 12- или 16-битовых ячеек. Каждая ячейка соответствует одному кластеру диска. Эти ячейки могут содержать следующие значения:

FAT12

FAT16

Типкластера

000h

0000h

Свободныйкластер

FF0h-FF6h

FFF0h-FFF6h

Зарезервированныйкластер

FF7h

FFF7h

Плохойкластер

FF8h-FFFh

FFF8h-FFFFh

Последнийкластер в списке

002h-FEFh

0002h-FFEFh

Номерследующегокластера всписке

Обычно FAT - таблица располагается после загрузочного сектора . Для точного определения начального сектора FAT - таблицы следует прочитать в память загрузочный сектор и проанализировать содержимое блока параметров BIOS. В поле ressect записано количество зарезервированных секторов, которые располагаются перед FAT. Поле fat_size содержит размер FAT в секторах. Кроме того, следует учитывать, что на диске может находиться несколько копий FAT. Операционная система использует только первую копию FAT, но обновляет вторую. Вторая копия нужна для утилит восстановления содержимого диска. Количество копий FAT находится в поле fat_cnt загрузочного сектора.

Общая схема использования FAT такова:

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

Процедура извлечения номера кластера из FAT - таблицы зависит от формата FAT - таблицы.

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

Для 12-битовой FAT - таблицы процедура значительно сложнее. Необходимо выполнить следующие действия:

    умножить номер начального кластера на 3; разделить результат на 2; прочитать 16-битовое слово из FAT - таблицы,


Интересная статья: Быстрое написание курсовой работы