Файловая система 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 кластеров (с номерами от 0 до 65535).

Кластер – это минимальная адресуемая единица дисковой памяти, выделяемая файлу (или некорневому каталогу). Файл или каталог занимает целое число кластеров. Последний кластер при этом может быть задействован не полностью, что приведет к заметной потере дискового пространства при большом размере кластера. На дискетах кластер занимает один или два сектора, а на жёстких дис­ках – в зависимости от объёма раздела (см. табл. 4.3).

 

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

в FAT16

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

 

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

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

Однако слишком большой размер кластера ведет к неэффективному использова­нию области данных, особенно в случае большого количества маленьких файлов. Как мы только что заметили, в среднем на каждый файл теряется около поло­вины кластера. Из табл. 4.3 следует, что при размере кластера в 32 сектора (объем раздела – от 512 Мбайт до 1023 Мбайт), то есть 16 Кбайт, средняя вели­чина потерь на файл составит 8 Кбайт, и при числе файлов в несколько тысяч1 потери могут составлять более 100 Мбайт. Поэтому в современных файловых системах (к ним, прежде всего, следует отнести HPFS, NTFS, FAT32 и некото­рые другие, поддерживаемые ОС семейства UNIX) размеры кластеров ограничи­ваются (обычно – от 512 байт до 4 Кбайт). В FAT32 проблема решается за счёт того, что собственно сама FAT в этой файловой системе может содержать до 228 кластеров2. Наконец, заметим, что системы управления файлами, созданные для Windows 9x и Windows NT, могут работать с разделами размером до 4 Гбайт, на которых установлена система FAT, тогда как DOS, естественно, с такими разде­лами работать не сможет.

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

 
 

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

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

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

 

Таблица 4.4. Элемент каталога

Размер поля данных, байт Содержание поля
Имя файла или каталога
Атрибуты файла
Резервное поле
Время создания
Дата создания
Дата последнего доступа
Зарезервировано
Время последней модификации
Дата последней модификации
Номер начального кластера в FAT
Размер файла

 

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

 
 

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



Дата добавления: 2022-02-05; просмотров: 225;


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

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

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

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