Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Структуры данных FAT




 

Структура раздела FAT изображена на рисунке 1-32.

Загрузочный сектор   Загрузочный сектор
  FAT1 Структура FSInfo
Резервная область
  FAT2     FAT1
  Корневой каталог     FAT2
    Область данных       Область данных

 

Системы FAT12 и FAT16 Система FAT32

 

Рисунок 1-32 Структура раздела с файловой системой FAT

 

В файловой системе FAT дисковое пространство логического раздела делится на две области - системную и область данных (см. рис. 1-32). Системная область создается и инициализируется при форматировании, а впоследствии обновляется при манипулировании файловой структурой. Системная область файловых систем FAT состоит из следующих компонентов:

• загрузочная запись (boot record, BR);

• резервная область;

• таблицы размещения файлов;

• область корневого каталога (не существует в FAT32).

Область данных логического диска содержит файлы и каталоги, подчиненные корневому, и разделена на участки одинакового размера кластеры. Кластер может состоять из одного или нескольких последовательно расположенных на диске секторов. Число секторов в кластере должно быть кратно 2n и может принимать значения от 1 до 64. Размер кластера зависит от типа используемой файловой системы и объема логического диска.

Загрузочный сектор

В первом секторе логического диска с системой FAT располагается загрузочный сектор и блок параметров BIOS.

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

Для доступа к содержимому файла, находящемуся на разделе с файловой системой FAT, необходимо получить номер первого кластера файла. Этот номер входит в состав элемента каталога, содержащего запись о файле. Номеру первого кластера соответствует элемент таблицы FAT, в котором хранится адрес кластера, содержащего следующую часть файла. Элемент FAT, соответствующий последнему кластеру в цепочке, содержит сигнатуру конца файла. Для FАT12 это значение составляет 0xFFF, для FAT16 - 0xFFFF, для FAT32 - 0xFFFFFFFF.

Назначение, структура и типы таблицы размещения файлов

Своё название FAT получила от одноимённой таблицы размещения файлов - File Allocation Table – FAT. В таблице размещения файлов хранится информация о кластерах логического диска. Каждому кластеру соответствует элемент таблицы FAT, содержащий информацию о том, свободен данный кластер или занят данными файла. Если кластер занят под файл, то в соответствующем элементе таблицы размещения файлов указывается адрес кластера, содержащего следующую часть файла. Номер начального кластера, занятого файлом, хранится в элементе каталога, содержащего запись об этом файле. Последний элемент списка кластеров содержит признак конца файла (EOF - End Of File). Первые два элемента FAT являются резервными.



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

Рисунок 1-33. Пример таблицы размещения файлов

 

На рис. 2 показано размещение трех файлов – первый состоит из трех кластеров – это непрерывный (нефрагментированный) файл. Второй файл фрагментированный..

 

Корневой каталог

За таблицами размещения файлов следует корневой каталог. Каждому файлу и подкаталогу в корневом каталоге соответствует 32-байтный элемент каталога (directory entry), содержащий имя файла, его атрибуты (архивный, скрытый, системный и только для чтения), дату и время создания (или внесения в него последних изменений), а также прочую информацию. Для файловых систем FАТ12 и FAT16 положение корневого каталога на разделе и его размер жестко зафиксированы. В FAT32 корневой каталог может быть расположен в любом месте области данных раздела и иметь произвольный размер.



Форматы имен файлов

Одной из характеристик ранних версий FAT (FAT12 и FAT16) является использование коротких имен файлов.

Короткое имя состоит из двух полей - 8-байтного поля, содержащего собственно имя файла, и 3-байтного поля, содержащего расширение (формат - 8.3). Структура элемента каталога для короткого имени файла представлена в таблице 4. Первый байт короткого имени выполняет функции признака занятости каталога:

• если первый байт равен 0хЕ5, то элемент каталога свободен и его можно использовать при создании нового файла;

• если первый байт равен 0x00, то элемент каталога свободен и является началом чистой области каталога (после него нет ни одного задействованного элемента).

Таблица Структура элемента каталога для короткого имени файла

 

Смеще-ние Размер (байт) Содержание
0x00 Короткое имя файла
0x0B Атрибуты файла
0x0C Зарезервировано для Windows NT. Поле обрабатывается только в FAT32
0x0D Поле, уточняющее время создания файла (содержит десятки миллисекунд). Поле обрабатывается только в FAT32
0x0E Время создания файла. Поле обрабатывается только в FAT32
0x10 Дата создания файла. Поле обрабатывается только в FАТ32
0x12 Дата последнего обращения к файлу для записи или считывания данных. Поле обрабатывается только в FАТ32
0x14 Старшее слово номера первого кластера файла. Поле обрабатывается только в FAT32
0x16 Время выполнения последней операции записи в файл
0x18 Дата выполнения последней операции записи в файл
0x1A Младшее слово номера первого кластера файла
0x1C Размер файла в байтах

 

В файловых системах FАТ32 и VFАТ (виртуальная FАТ, расширение FАТ16) включена поддержка длинных имен файлов (long file name, LFN). Для хранения длинного имени используются элементы каталога, смежные с основным элементом. Имя файла записывается не ASCII -символами, а в Unicode. В одном элементе каталога можно сохранить фрагмент длиной до 13 символов Unicode. Неиспользованный участок последнего фрагмента заполняется кодами 0хFFFF. Структура элемента каталога для длинного имени файла представлена в таблице

 

Структура элемента каталога для длинного имени файла

Смещение Размер (байт) Содержание
0x00 Номер фрагмента
0x01 Символы 1-5 имени файла в Unicode
0x0B Атрибуты файла
0x0C Байт флагов
0x0D Контрольная сумма короткого имени
0x0E Символы 6-11 имени файла в Unicode
0x1A Номер первого кластера (заполняется нулями)
0x1C Символы 12-13 имени файла в Unicode

 

Длинное имя записывается в каталог первым, причём фрагменты размещены в обратном порядке, начиная с последнего. Вслед за длинным (полным) именем размещается стандартный описатель файла, содержащий укороченный по специальному алгоритму вариант этого имени. Пример хранения длинного имени файла показан в http:\\www.ntfs.com/fat-filenames.htm

Один из недостатков FAT –возможность потери данных. При неожиданной остановке системы целостность метаданных тома FAT может быть утрачена, что вызовет повреждение структуры каталогов и значительного объема данных.


mylektsii.ru - Мои Лекции - 2015-2018 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал