Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект ПерУстр Интерф.doc
Скачиваний:
19
Добавлен:
17.04.2019
Размер:
4.43 Mб
Скачать

3.3.2. Файловая система fat

FAT представляет собой простую файловую систему, разработанную для небольших дисков и простых структур каталогов. Ее название происходит от названия метода, применяемого для организации файлов ≈ таблица размещения файлов (File Allocation Table, FAT). Эта таблица размещается в начале тома. В целях защиты тома на нем хранятся две копии FAT. В случае повреждения первой копии FAT дисковые утилиты (например, Scandisk) могут воспользоваться второй копией для восстановления тома. Таблица размещения файлов и корневой каталог должны располагаться по строго фиксированным адресам, чтобы файлы, необходимые для запуска системы, были размещены корректно.

По принципу построения FAT похожа на оглавление книги, т. к. операционная система использует ее для поиска файла и определения кластеров, которые этот файл занимает на жестком диске. Изначально компания Microsoft разработала FAT для управления файлами на дискетах, и только затем приняла ее в качестве стандарта для управления дисками в MS-DOS. Сначала для дискет и небольших жестких дисков (менее 16 Мбайт) использовалась 12-разрядная версия FAT (так называемая FAT12). В MS-DOS v. 3.0 была введена 16-разрядная версия FAT для более крупных дисков. К настоящему моменту FAT 12 применяется на носителях очень малого объема (или на очень старых дисках).

Том, отформатированный под FAT12 и FAT16, размечается по кластерам. Стандартный размер кластера, устанавливаемый по умолчанию, определяется размером тома. Таблица расположения файлов и ее резервная копия содержат следующую информацию о каждом кластере тома:

  • Unused (кластер не используется).

  • Cluster in use by a file (кластер используется файлом).

  • Bad cluster (плохой кластер).

  • Last cluster in a file (последний кластер файла).

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

Корневая папка содержит записи для каждого файла и каждой папки, расположенных в корневой папке. Единственным отличием корневой папки от остальных является то, что она занимает четко определенное место на диске и имеет фиксированный размер (не более 512 записей для жесткого диска).

Папки содержат 32-байтные записи для каждого содержащегося в них файла и каждой вложенной папки. Эти записи содержат следующую информацию:

  • Имя (в формате 8.3).

  • Байт атрибутов (8 бит полезной информации, которая подробно описана ниже).

  • Время создания (24 бит).

  • Дата создания (16 бит).

  • Дата последнего доступа (16 бит).

  • Время последней модификации (16 бит).

  • Дата последней модификации (16 бит).

  • Номер начального кластера файла в таблице расположения файлов (16 бит).

  • Размер файла (32 бита).

Структура папки FAT не имеет четкой организации, и файлам присваиваются первые доступные адреса кластеров на томе. Номер начального кластера файла представляет собой адрес первого кластера, занятого файлом, в таблице расположения файлов. Каждый кластер содержит указатель на следующий кластер, использованный файлом, или индикатор (OxFFFF), указывающий, что данный кластер является последним кластером файла.

Информация папок используется операционными системами, поддерживающими файловую систему FAT.

В этой таблице каждому кластеру, предназначенному для хранения данных, соответствует 16-битовое значение. Если кластер свободен, то значение будет нулевым. Если же он принадлежит файлу, то значение равно адресу следующего кластера этого файла. Если это последний сектор в файле, то значение — OxFFF (рис. 30). Существует также специальный код для обозначения плохого сектора, не читаемого из-за дефекта физического носителя. В каталоге хранится номер первого сектора и длина файла, измеряемая в байтах. Емкость диска при использовании 12-битовой FAT ограничена 4096 кластерами (2 Мбайт), что приемлемо для дискет, но совершенно не годится для жестких дисков и других устройств большой емкости.

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

В таблице FAT кластеры, принадлежащие файлу или каталогу, связываются в цепочки. В 16-разрядной FAT можно иметь до 65536 кластеров. Логическое объединение секторов в кластеры позволяет уменьшить размер таблицы FAT и ускорить доступ к файлу. Однако слишком большой размер кластера приводит к неэффективному использованию области данных, особенно при большом количестве маленьких файлов. Поскольку файлы на диске подвержены изменению (удаляются, перемещаются, увеличиваются или уменьшаются), то выделение первого свободного кластера для новой

порции данных приводит к фрагментации файлов. Данные одного файла могут располагаться не в смежных кластерах, а в удаленных друг от друга.

Система FAT очень проста и имеет одно серьезное достоинство: врожденную устойчивость к сбоям. В то же время у нее есть и ряд серьезных недостатков. Первый недостаток состоит в том, что при каждой операции над файлами система должна обращаться к FAT. Это приводит к частым перемещениям головок дисковода и в результате к резкому снижению производительности. Файловая система FAT 16 может иметь не более 65535 кластеров на логический диск, и это приводит к ограничению размера логического диска. С увеличением размера диска приходится увеличивать размер кластеров, что приводит к крайне неэффективному и бесполезному расходу дискового пространства.