Структура системы FAT
Логический диск, отформатированный в системе FAT, имеет следующие разделы:
Для хранения файлов всё доступное для них пространство разбивается на кластеры. Таблица размещения файлов содержит ячейки, каждая из которых соответствует определённому кластеру диска. Если кластер принадлежит файлу, то соответствующая ему ячейка содержит номер следующего кластера этого же файла. Если ячейка соответствует последнему кластеру файла, то она содержит значение «FFFF». Таким образом выстраивается цепочка кластеров файла. Неиспользуемые кластеры помечены «0000». «Плохие» кластеры помечены специальным кодом «FFF7». При удалении файла фактически только делается запись в каталоге, а цепочка не разрушается. Это позволяент восстанавливать удалённые файлы. Максимальный размер кластера, который поддерживается в FAT, составляет 32 КБ. Зная, что максимальное количество кластеров, которое можно адресовать шестнадцатиразрядным указателем равно 65536, можно вычислить какой величины раздел можно отформатировать, применяя тот или иной размер кластера. Если взять размер кластера равным размеру физического кластера (сектора), то получим: 65536*512=32 МБ. Если взять кластер в 2 раза больше, то можно отформатировать раздел уже до 64 МБ. Ввиду того, что разрядность ФС величина постоянная, для форматирования дисков различных размеров будут применяться разные размеры кластеров. Например, чтобы отформатировать диск более 1 ГБ, нужно применять кластер 32 КБ. Поскольку такой размер кластера является максимально допустимым в этой ФС, то можно определить, что максимальный размер раздела, форматируемый под FAT, равен 2 ГБ. Отказоустойчивость системы Поскольку система FAT хранит данные о файлах и данные о свободном месте на диске в одной таблице, то операция записи файла, традиционно состоящая из двух этапов (добавление занимаемого блока в перечень занятых и исключение этого же блока из списка свободных) происходит в FAT в одно действие. Благодаря этому система FAT обладает врождённой устойчивостью к сбоям, то есть сбой (например, питания) в момент выполнения операции чтения или записи в большинстве случаев не приведёт к разрушению файловой системы. Однако следует помнить, что в данном случае речь идёт именно о целостности файловой системы, а не самих файлов.
|