Структура элемента каталога в файловой системе FATхх. Опорные и дополнительные элементы. Метка тома

Файлы и каталоги

Файловая система FAT имеет древовидную структуру. В корневом каталоге располагаются 32-байтовые элементы, которые содержат информацию о файлах и других каталогах.

Корневой каталог занимает непрерывную область фиксированного размера. Размер корневого каталога задаётся при форматировании и определяет максимальное количество файлов и каталогов, которые могут быть в нём описаны.

Вслед за корневым каталогом на логическом диске находится область файлов и подкаталогов корневого каталога.

Область данных разбита на кластеры, причём нумерация кластеров начинается с двойки. Кластеру с номером 2 соответствуют первые секторы области данных.

Любой каталог содержит 32-байтовые элементы — дескрипторы, описывающие файлы и другие каталоги. Формат дескриптора следующий:

Смещение (байт) Размер (байт) Содержимое
Имя файла или каталога, выровненное на левую границу и дополненное пробелами
Расширение имени файла, выровненное на левую границу и дополненное пробелами
Байт атрибутов файла
Зарезервировано
Время создания файла или время его последней модификации
Дата создания файла или время его последней модификации
Номер первого кластера, распределённого файлу
Размер файла в байтах

В любом каталоге, кроме корневого, два первых дескриптора имеют специальное назначение. Первый дескриптор содержит в поле имени строку «.». Этот дескриптор указывает на содержащий его каталог, то есть каталог имеет ссылку на себя. второй специальный дескриптор имеет имя «..». Этот дескриптор указывает на каталог более высокого уровня.

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

Биты байта атрибута файла в элементе каталога указывают, имеет ли файл соответствующие атрибуты. Первый бит идентифицирует каталог; второй отмечает файл в качестве метки логического диска. Обычно только операционная система может управлять значением этих битов. Кроме этого, файлы FAT имеют четыре специальных атрибута, которые могут применяться пользователем: архивный, системный, скрытый и атрибут «только для чтения».

 

Область данных содержит файлы и каталоги, подчиненные корневому.

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

Разбиение области данных на кластеры вместо использования секторов позволяет:

· уменьшить размер таблицы FAT;

· уменьшить фрагментацию файлов;

· сокращается длина цепочек файла Þ ускоряется доступ к файлу.

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

В современных файловых системах (FAT32, HPFS, NTFS) эта проблема решается за счет ограничения размера кластера (максимум 4 Кбайта)

Картой области данных является Таблица размещения файлов (File Allocation Table - FAT) Каждый элемент таблицы FAT (12, 16 или 32 бит) соответствует одному кластеру диска и характеризует его состояние: свободен, занят или является сбойным кластером (bad cluster).

· Если кластер распределен какому-либо файлу (т.е., занят), то соответствующий элемент FAT содержит номер следующего кластера файла;

· последний кластер файла отмечается числом в диапазоне FF8h - FFFh (FFF8h - FFFFh);

· если кластер является свободным, он содержит нулевое значение 000h (0000h);

· кластер, непригодный для использования (сбойный), отмечается числом FF7h (FFF7h).

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

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

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

В связи с тем, что FAT используется очень интенсивно при доступе к диску, она обычно загружается в ОП (в буфера ввода/вывода или кэш) и остается там настолько долго, насколько это возможно.

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

Для просмотра и редактирования таблицы FAT можно использовать утилиту Disk Editor.

Подробная информация о самом файле хранится в другой структуре, которая называется корневым каталогом. Каждый логический диск имеет свой корневой каталог (ROOT, англ. - корень).

Корневой каталог описывает файлы и другие каталоги. Элементом каталога является дескриптор (описатель) файла.

Дескриптор каждого файла и каталога включает его

· имя

· расширение

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

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

· атрибуты (архивный, атрибут каталога, атрибут тома, системный, скрытый, только для чтения)

· длину файла (для каталога - 0)

· зарезервированное поле, которое не используется

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

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

Для просмотра и редактирования корневого каталога ROOT можно также использовать утилиту Disk Editor.


 

Корневой каталог (метка тома)
Идентификатор дисковода
Структура системы файлов FAT

00Н 01Н Идентификатор дисковода
01Н 09Н Имя файла (8 символов)
09Н 0СН Расширение (3 символа)
0СН 0ЕН Номер текущего блока
0ЕН 10Н Размер записи
10Н 14Н Размер файла
14Н 16Н Дата создания (обновления)
16Н 18Н Время создания (обновления)
18Н 20Н Зарезервировано
20Н 21Н Номер текущей записи
    Типичный блок управления файлом
21Н

25Н Номер относительной записи

 


 

00Н 01Н 0FFH
01Н 06Н Зарезервировано
06Н 07Н Байт атрибута
07Н 08Н Идентификатор дисковода
08Н 10Н Имя файла (8 символов)
10Н 13Н Расширение (3 символа)
13Н 15Н Номер текущего блока
15Н 17Н Размер записи
17Н 1ВН Размер файла
1BН 1DН Дата создания (обновления)
1DН 1FН Время создания (обновления)
1FН 27H Зарезервировано
27H 28H Номер текущей записи
28H 2CH Номер относительной записи

    Расширенный блок управления файлом

Резюме

 

Резюме.