Файловая система FATхх. Назначение и организация таблицы распределения файлов. Типы записей в FAT.




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

Файловая система FAT использует связанный список индексов. Этот способ является модификацией способа размещения файла в виде связанного списка кластеров дисковой памяти. Файлу выделяется память в виде связанного списка кластеров. Номер первого кластера запоминается в записи каталога, где хранятся характеристики этого файла. Остальная информация отделена от кластеров файла. С каждым кластером диска связывается некоторый элемент – индекс. Индексы располагаются в отдельной области диска – таблице FAT (File Allocation Table). В MS-DOS эта таблица занимает один кластер. Когда память свободна все индексы имеют нулевое значение. Если некоторый кластер N назначен некоторому файлу, то индекс этого кластера становится равным либо номеру M следующего кластера данного файла, либо принимает специальное значение, являющееся признаком того, что этот кластер является последним. Индекс же предыдущего кластера принимает значение N, указывая на вновь назначенный кластер. Достоинства файловой системы FAT: 1) минимальность адресной информации; 2) отсутствие фрагментации; 3) отсутствие проблем при изменении размера; 4) для доступа к произвольному кластеру файла не требуется последовательно считывать его кластеры, достаточно прочитать только секторы диска, содержащие таблицу индексов, отсчитать нужное количество кластеров файла по цепочке и определить номер нужного кластера; 5) данные файла заполняют кластер целиком, а значит, имеют объем, равный степени двойки. Недостаток файловой системы FAT: при разрыве списка индексных указателей в одном месте теряется информация обо всех последующих кластерах файла.

Физическая организация FAT

Логический раздел, отформатированный под файловую систему FAT, состоит из следующих областей. 1.) Загрузочный сектор содержит программу начальной загрузки ОС. Вид этой программы зависит от типа ОС, которая будет загружаться из этого раздела. 2.) Основная копия FAT содержит информацию о размещении файлов и каталогов на диске. 3.) Резервная копия FAT. 4.) Корневой каталог занимает фиксированную область размером в 32 сектора (16 Кбайт), что позволяет хранить 512 записей о файлах и каталогах, так как каждая запись каталога состоит из 32 байт. 5.) Область данных предназначена для размещения всех файлов и всех каталогов, кроме корневого каталога.

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

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

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


Структура элемента каталога в файловой системе 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 Номер относительной записи

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

Резюме

 

Резюме.





©2015-2017 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.

Обратная связь

ТОП 5 активных страниц!