3463 ОРГАНИЗАЦИЯ ХРАНЕНИЯ ДАННЫХ НА МАГНИТНЫХ ДИСКАХ В ФАЙЛОВОЙ СИСТЕМЕ FAT

1. Организация дисков

1.1. Структура данных на магнитных дисках

 

Любой файл на диске занимает определенное место и имеет соответствующий адрес. Любой диск разбивается на совокупность дорожек, а каждая дорожка разбивается на несколько секторов. Размер информационной части каждого сектора равен 512 байтам (0.5 Кбайт). Разбиение диска на дорожки и секторы называется форматированием диска и осуществляется с помощью специальных программ. Для гибких дисков существует несколько типовых форматов, отличающихся числом дорожек и секторов, а следовательно, и объемом хранимой информации. Большинство современных гибких дисков являются двусторонними, т.е. позволяют писать информацию с обеих сторон. Так, распространенные дискеты диаметром 3.5¢¢ имеют по 80 дорожек на каждой из двух сторон и 18 секторов на каждой дорожке. Общая емкость такого гибкого диска составляет    Кбайт  (1.44 Мбайт).  Если  учесть, что 1 Кбайт = 1024 байт, то, более точно, емкость гибкого диска равна 1457664 байта. Емкость жестких дисков измеряется мегабайтами (Мбайт = 1024 Кбайт) или гигабайтами (1 Гбайт = 1024 Мбайт). Число секторов и дорожек на них больше, чем у гибких дисков, и зависит от емкости диска.

На дисках есть четыре специальные области:

- загрузочная запись (boot record - блок начальной загрузки);

- таблица размещения файлов (file Allocation Table - FAT);

- каталог файлов;

- область пользовательских файлов.

Если диск разбит на несколько логических разделов, то на нем будет также создана таблица разделов (Partition table), в которой хранятся основные параметры этих разделов.

Самую первую область диска занимает загрузочная запись. При первом обращении к диску операционная система должна узнать его характеристики. Эта информация находится в первом секторе диска (дорожка 0, поверхность 0, сектор 1). Загрузка обычно занимает один сектор, но может быть и больше.

В нее входят:

- команда jmp;

- код идентификации поставщика;

- блок параметров BIOS;

- программа загрузки.

В случае системного диска компьютер помещает загрузочную запись в память и выполняет команду jmp - переход к процедуре загрузки.

Идентификация поставщика занимает 8 байт. Она не требуется для работы операционной системы. Обычно в этом поле находятся название фирмы и номер версии MS DOS  на диске, например  IBM 3.1.

Блок параметров BIOS - это таблица параметров, по которой DOS узнает емкость диска и местоположение FAT и каталога. Этот блок называется BPB (BIOS Parameter Block)  и  есть на каждом диске.

Область процедуры загрузки содержит команды программы, которая загружает операционную систему в память.

 

1.2. Таблица размещения файлов

 

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

Однако слежение за файлами по секторам неэффективно. Так, жесткий диск емкостью 10 Гбайт имеет более 20 000 000 секторов и FAT окажется слишком большой. Чтобы сделать FAT меньше и ускорить тем самым ее просмотр, несколько секторов обычно объединяют в группу, называемую кластером. Кластеры являются основными единицами хранения дисковых файлов. Каждый файл занимает на диске область в один или более кластеров.

Число секторов в кластере зависит от типа диска. Обычно на гибком диске в кластер входит 1 - 2 сектора, на жестком диске кластер содержит 4 - 64 сектора. Так, для жесткого диска емкостью 2 Гбайта кластер равен 32 Кбайт. Однако каким бы маленьким ни был файл, он все равно займет на диске целый кластер и все неиспользуемые в нем секторы просто пропадут.

Если емкость диска не превышает 10 Мбайт, то длина элемента FAT составляет 12 бит. При емкости диска более 10 Мбайт длина элемента FAT равна 16 бит (FAT16). В Windows 95 используется FAT32, элементы которой имеют длину 32 бита, что позволяет более эффективно использовать дисковое пространство. Диски объемом до 8 Гбайт имеют размер кластера 4 Кбайта.

В FAT имеется элемент для каждого доступного кластера на диске. Элементы FAT показывают, является ли кластер занятым, свободным, дефектным или зарезервированным операционной системой. Дефектные кластеры обнаруживаются специальными программами, например FORMAT, NDD и т.д. На диске обычно имеется две копии FAT. Вторая копия предполагалась использоваться для коррекции первой копии FAT в случае ее повреждения. Однако MS DOS не делает этого, т.к. разработчики  MS DOS просто забыли предусмотреть это. Значения, которые могут принимать элементы FAT16, приведены в табл. 1.

Список кластеров, образующих занятое файлом дисковое пространство, называется цепью кластеров.

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

 

Таблица 1

 

16-битный элемент FAT

Описание

0000

Свободный

0001-FFEF

Занятый

FFF0-FFF6

Зарезервирован DOS

FFF7

Дефектный

FFF8-FFFF

Конец цепи кластеров

 

Для каждого файла в каталоге находятся имя файла и номер его начального кластера  . В элементе FAT с номером  содержится номер  следующего кластера искомого файла, в элементе FAT с  номером  - номер  следующего кластера файла и т.д. Если кластер  является последним кластером файла, то в элементе FAT с номером   будет содержаться индикатор конца файла (FFF или FFFF). Таким образом, для нахождения всех кластеров файла нужно знать лишь только номер первого кластера, который хранится в каталоге на диске. На рис.1 показано, что файл MYFILE записан в кластерах 004, 005, 006, 008.

 

 

 

 

Рис. 1

 

Так как файлы на диске могут храниться в разных секторах, далеко расположенных друг от друга, то эффективность работы компьютера из-за этого может снижаться. Чтобы повысить скорость работы, следует объединить все разрозненные куски файлов в единую логическую цепь. Кроме того, если все файлы передвинуть к началу диска, можно получить дополнительный выигрыш в производительности. Для этого существуют специальные программы оптимизации дисков.

1.3. Каталог файлов

 

Каталог файлов находится после загрузочной записи и FAT и содержит имена всех дисковых файлов и имена подкаталогов. Общее количество элементов каталога зависит от типа диска. Каталог двусторонних дискет содержит 224 элемента. Каталог жестких дисков включает 512 элементов. Таким образом, общее количество файлов, которое может быть записано в корневой директории диска, не может превышать максимального числа элементов каталога. В Windows 95 с появлением длинных имен число файлов, которые можно хранить в корневой папке, еще более уменьшилось. Возможна ситуация, когда 30 файлов с очень длинными именами израсходуют все место для записи имен файлов в корневой папке. Рекомендуется не создавать много файлов в корневом каталоге, а распределять их по другим подкаталогам (папкам).

Содержимое каждого элемента каталога представлено в табл. 2.

 

 

Таблица 2

 

Начало, байт

Длина, байт

Описание

0

8

Имя файла

8

3

Расширение имени файла

11

1

Атрибуты файла

12               

10

Зарезервировано DOS

22

2

Время  создания  или  последней  модификации

24

2

Дата  создания   или   последней  модификации

26

2

Начальный кластер

28

4

Размер файла