![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Структуры данных FAT
Структура раздела FAT изображена на рисунке 1-32.
Системы 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, то элемент каталога свободен и является началом чистой области каталога (после него нет ни одного задействованного элемента). Таблица Структура элемента каталога для короткого имени файла
В файловых системах FАТ32 и VFАТ (виртуальная FАТ, расширение FАТ16) включена поддержка длинных имен файлов (long file name, LFN). Для хранения длинного имени используются элементы каталога, смежные с основным элементом. Имя файла записывается не ASCII -символами, а в Unicode. В одном элементе каталога можно сохранить фрагмент длиной до 13 символов Unicode. Неиспользованный участок последнего фрагмента заполняется кодами 0хFFFF. Структура элемента каталога для длинного имени файла представлена в таблице
Структура элемента каталога для длинного имени файла
Длинное имя записывается в каталог первым, причём фрагменты размещены в обратном порядке, начиная с последнего. Вслед за длинным (полным) именем размещается стандартный описатель файла, содержащий укороченный по специальному алгоритму вариант этого имени. Пример хранения длинного имени файла показан в http: \\www.ntfs.com/fat-filenames.htm Один из недостатков FAT –возможность потери данных. При неожиданной остановке системы целостность метаданных тома FAT может быть утрачена, что вызовет повреждение структуры каталогов и значительного объема данных.
|