Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

.doc
Скачиваний:
47
Добавлен:
15.04.2015
Размер:
100.86 Кб
Скачать

8

ОРГАНИЗАЦИЯ ХРАНЕНИЯ ДАННЫХ

НА МАГНИТНЫХ ДИСКАХ В СИСТЕМЕ FAT

Структура данных на магнитных дисках в системе FAT

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

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

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

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

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

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

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

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

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

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

Начиная с Windows 95, таблица размещения файлов FAT использует для кодирования адреса файла 32 бита, что позволяет более эффективно использовать дисковое пространство. Например, диски объемом до 8 Гбайт имеют размер кластера 4 Кбайта.

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

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

Если емкость диска не превышает 10 Мбайт, то длина элемента FAT составляет 12 бит. При емкости диска более 10 Мбайт длина элемента FAT равна 16 бит. В Windows 95 используется FAT, элементы которой имеют длину 32 бита. Значения, которые могут принимать элементы FAT, приведены в табл. 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

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

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

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

При создании файла время создания помещается в элемент каталога. Если файл модифицируется, то соответствующий элемент каталога также изменяется, запоминая время последней модификации. Это, однако, не относится к элементам подкаталогов. Добавление в подкаталог новых файлов не вызывает изменения времени в соответствующем элементе подкаталога.

Содержимое каждого элемента каталога представлено в табл. 2. Поле имени файла содержит до восьми символов. Имена файлов менее 8 байт дополняются пробелами. При удалении файла первый байт имени файла заменяется символом ? (код E516), и этот элемент каталога можно использовать повторно.

Таблица 2

Длина, байт

Описание

8

Имя файла

3

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

1

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

10

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

2

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

2

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

2

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

4

Размер файла

Значения атрибутов файла приведены в табл. 3. Атрибут подкаталога показывает, что имя файла относится к имени подкаталога. Атрибут архивного бита показывает, что при использовании утилиты BACKUP.COM для резервирования файлов содержимое этого конкретного элемента было записано.

Таблица 3

Значение

Описание

0016

Обычный файл

0116

Только считываемый файл

0216

Скрытый файл

0416

Системный файл

0816

Метка тома

1016

Подкаталог

2016

Архивный бит

Если новый файл создается средствами MS DOS, то в каталоге под него отводится один 32-байтный элемент. Если же файл создается средствами Windows, то чаще всего под него в каталоге отведется несколько элементов. В одном из них зафиксируются имя этого файла по правилам MS DOS и все другие характеристики файла. В других дополнительных элементах будет храниться полное имя этого файла, как оно вводилось при создании файла, а другие характеристики файла (размер, время создания и др.) отсутствуют. Следует отметить, что в разных версиях Windows (95, 98, 2000, NT) система FAT поддерживается с некоторыми отличиями и один и тот же файл, созданный средствами Windows, может занимать в каталоге разное количество элементов.

Если в имени файла присутствует более восьми символов или в нем использованы пробелы, то система воспринимает это имя как длинное и отводит под него два и более элементов. В первом элементе записываются первые восемь символов имени, расширение имени, дата создания и прочая информация о файле. Остальная часть имени записывается в дополнительных элементах, которых может быть до 20.

Так, если средствами WINDOWS создать файл с именем PRIMER1.TXT, то для него в каталоге будет выделен только один элемент, т.к. его имя полностью соответствует требованиям MS DOS. Но если создать файл с именем Primer2.txt, в котором часть имени введена строчными символами, то под него будет выделено уже два элемента в каталоге. В первом элементе будет указано только имя Primer2.txt и атрибут 0F, а во втором элементе – имя этого же файла по правилам MS DOS: PRIMER2, его расширение имени: TXT и все остальные характеристики. Однако создать файл с именем Primer1.txt не удастся, т.к. считается, что это - одно и то же имя, что и PRIMER1.TXT. Таким образом, для WINDOWS величина букв (заглавные или строчные) не имеет значения, но на экран имя файла выводится такими символами, какие использовались при создании файла.

Если создать файл с именем PRIMER_DLINNOGO_IMENI_FAILA.TXT, то под него выделяется четыре элемента каталога. В первых трех из них будет по частям указано длинное имя файла:

A.TXT

GO_IMENI_FAILA

PRIMER_DLINNO

Каждый из этих элементов каталога будет в поле “атрибут” иметь значение 0F. В четвертом элементе каталога будет содержаться имя файла, удовлетворяющее требованиям MS DOS: PRIMER~1. Далее хранятся расширение имени файла TXT, его размер и другие характеристики.

Если создать еще один файл с длинным именем PRIMER1_DLINNOGO_IMENI_FAILA.TXT, то под него также выделится четыре элемента каталога и в последнем из них будет записано имя PRIMER~2.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]