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


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

  • Загрузочный сектор содержит программу начальной загрузки операционной системы. Вид этой программы зависит от типа операционной системы, кото­рая будет загружаться из этого раздела.
  • Основная копия FA T содержит информацию о размещении файлов и катало­гов на диске.
  • Резервная копия FAT.
  • Корневой каталог занимает фиксированную область размером в 32 сектора(16 Кбайт), что позволяет хранить 512 записей о файлах и каталогах, так как каждая запись каталога состоит из 32 байт.
  • Область данных предназначена для размещения всех файлов и всех катало­гов, кроме корневого каталога.

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

Таблица FAT (как основная копия, так и резервная) состоит из массива индекс­ных указателей, количество которых равно количеству кластеров области дан­ных. Между кластерами и индексными указателями имеется взаимно однознач­ное соответствие — нулевой указатель соответствует нулевому кластеру и т. д. Индексный указатель может принимать следующие значения, характеризующие состояние связанного с ним кластера:

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

Таблица FAT является общей для всех файлов раздела. В исходном состоянии (после форматирования) все кластеры раздела свободны и все индексные указа­тели (кроме тех, которые соответствуют резервным и дефектным блокам) при­нимают значение «кластер свободен». При размещении файла ОС просматривает FAT, начиная с начала, и ищет первый свободный индексный указатель. После его обнаружения в поле записи каталога «номер первого кластера» фиксируется номер этого указателя. В кластер с этим номером записываются данные файла, он становится первым кластером файла. Если файл умещается в одном кластере, то в указатель, соответствующий данному кластеру, заносится специальное значение «последний кластер файла». Если же размер файла боль­ше одного кластера, то ОС продолжает просмотр FAT и ищет следующий указа­тель на свободный кластер. После его обнаружения в предыдущий указатель за­носится номер этого кластера, который теперь становится следующим кластером файла. Процесс повторяется до тех пор, пока не будут размещены все данные файла. Таким образом, создается связный список всех кластеров файла. В начальный период после форматирования файлы будут размещаться в после­довательных кластерах области данных, однако после определенного количества удалений файлов кластеры одного файла окажутся в произвольных местах об­ласти данных, чередуясь с кластерами других файлов. Размер таблицы FAT и разрядность используемых в ней индексных указателей определяется количеством кластеров в области данных. Для уменьшения потерь из-за фрагментации желательно кластеры делать небольшими, а для сокраще­ния объема адресной информации и повышения скорости обмена наоборот — чем больше, тем лучше. При форматировании диска под файловую систему FAT обычно выбирается компромиссное решение, и размеры кластеров выбираются из диапазона от 1 до 128 секторов, или от 512 байт до 64 Кбайт. Очевидно, что разрядность индексного указателя должна быть такой, чтобы в нем можно было задать максимальный номер кластера для диска определенного объема. Существует несколько разновидностей FAT, отличающихся разрядностью индексных указателей, которая и используется в качестве условного обозначе­ния: FAT12, FAT16 и FAT32. В файловой системе FAT12 используются 12-раз­рядные указатели, что позволяет поддерживать до 4096 кластеров в области дан­ных диска1, в FAT16 — 16-разрядные указатели для 65 536 кластеров и в FAT32 — 32-разрядные для более чем 4 миллиардов кластеров. Максимальный размер раздела FAT32 практически не ограничен — 232 кластеров по 32 Кбайт.

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

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

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

Файловые системы FAT12 и FAT16 оперировали с именами файлов, состоящи­ми из 12 символов по схеме «8.3». В версии FAT16 операционной системы Win­dows NT был введен новый тип записи каталога — «длинное имя», что позволяет использовать имена длиной до 255 символов, причем каждый символ длинного имени хранится в двухбайтном формате Unicode. Имя по схеме «8.3», названное теперь коротким (не нужно путать его с простым именем файла, также называе­мого иногда коротким), по-прежнему хранится в 12-байтовом поле имени файла в записи каталога, а длинное имя помещается порциями по 13 символов в одну или несколько записей, следующих непосредственно за основной записью ката­лога. Каждый символ в формате Unicode кодируется двумя байтами, поэтому 13 символов занимают 26 байт, а оставшиеся 6 отведены под служебную инфор­мацию (в каталоге длина одной записи 32 байта). Таким образом у файла появляются два имени — короткое, для совмес­тимости со старыми приложениями, не понимающими длинных имен в Unicode, и длинное, удобное в использовании имя. Файловая система FAT32 также под­держивает короткие и длинные имена.

 



Дата добавления: 2016-06-05; просмотров: 2700;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.008 сек.