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


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

Как мы уже отмечали, аббревиатура FAT (file allocation table) расшифровывает­ся как «таблица размещения файлов». Этот термин относится к линейной таб­личной структуре со сведениями о файлах — именами файлов, их атрибутами и другими данными, определяющими местонахождение файлов (или их фрагмен­тов) в среде FAT. Элемент FAT определяет фактическую область диска, в кото­рой хранится начало физического файла.

В файловой системе FAT логическое дисковое пространство любого логического диска делится на две области (рис. 4.6): системную область и область данных.

Структура логического диска

Рис. 4.6. Структура логического диска

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

□  загрузочной записи (boot record, BR);

□  зарезервированных секторов (reserved sector, ResSecs);

□   таблицы размещения файлов (file allocation table, FAT);

□  корневого каталога (root directory, RDir).

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

Таблица размещения файлов является очень важной информационной структу­рой. Можно сказать, что она представляет собой карту (образ) области данных, в которой описывается состояние каждого участка области данных. Область дан­ных разбивают на так называемые кластеры. Кластер представляет собой один или несколько смежных секторов в логическом дисковом адресном пространстве (точнее — только в области данных). В таблице FAT кластеры, принадлежащие одному файлу (некорневому каталогу), связываются в цепочки. Для указания номера кластера в системе управления файлами FAT-16 используется 16-бито­вое слово, следовательно, можно иметь до 216 = 65536 кластеров (с номерами от О до 65535).

Кластер — это минимальная адресуемая единица дисковой памяти, выделяемая файлу (или некорневому каталогу). Файл или каталог занимает целое число

кластеров. Последний кластер при этом может быть задействован не полностью, что приведет к заметной потере дискового пространства при большом размере кластера. На дискетах кластер занимает один или два сектора, а на жестких дис­ках — в зависимости от объема раздела (см. табл. 4.3).

Таблица 4.3. Соотношения между размером раздела и размером кластеров в FAT16

Емкость раздела, Мбайт Количество секторов в кластере Размер кластеров, Кбайт
16-127 4 2
128-255 8 4
256-511 16 8
512-1023 32 16
1024-2047 64 32

Номер кластера всегда относится к области данных диска (пространству, заре­зервированному для файлов и подкаталогов). Первый допустимый номер кла­стера всегда начинается с 2. Номера кластеров соответствуют элементам табли­цы размещения файлов

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

Однако слишком большой размер кластера ведет к неэффективному использова­нию области данных, особенно в случае большого количества маленьких файлов. Как мы только что заметили, в среднем на каждый файл теряется около поло­вины кластера. В FAT32 проблема решается за счет того, что собственно сама FAT в этой файловой системе может содержать до 228 кластеров. Наконец, заметим, что системы управления файлами, созданные для Windows 9x и Windows NT, могут работать с разделами размером до 4 Гбайт, на которых установлена система FAT, тогда как DOS, естественно, с такими разде­лами работать не сможет.

Достаточно наглядно идея файловой системы с использованием таблицы разме­щения файлов FAT проиллюстрирована рис. 4.7. Из этого рисунка видно, что файл с именем MYFILE.TXT размещается начиная с восьмого кластера. Всего файл MYFILE.TXT занимает 12 кластеров. Цепочка кластеров (chain) для нашего приме­ра может быть записана следующим образом: 8, 9, ОА, ОВ, 15, 16, 17, 19, 1А, 1В, 1С, ID. Кластер с номером 18 помечен специальным кодом F7 как плохой (bad), он не может быть использован для размещения данных. При форматировании обычно проверяется поверхность магнитного диска, и те секторы, при контрольном чтении с которых происходили ошибки, помечаются в FAT как плохие. Кластер ID помечен кодом FF как конечный (последний в цепочке) кластер, принадле­жащий данному файлу. Свободные (незанятые) кластеры помечаются кодом 00; при выделении нового кластера для записи файла берется первый свободный кластер. Поскольку файлы на диске изменяются — удаляются, перемещаются, увеличиваются или уменьшаются, — то упомянутое правило выделения первого свободного кластера для новой порции данных приводит к фрагментации фай­лов, то есть данные одного файла могут располагаться не в смежных кластерах, а, порой, в очень удаленных друг от друга, образуя сложные цепочки. Естествен­но, что это приводит к существенному замедлению работы с файлами.

Основная концепция FAT

Рис. 4.7. Основная концепция FAT

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

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

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

Структура системы файлов является иерархической. Это иллюстрируется рис. 4.8, из которого видно, что элементом каталога может быть такой файл, который сам, в свою очередь, является каталогом.

Структура системы файлов

Рис. 4.8. Структура системы файлов

Загрузка...