Значение индексных указателей таблицы FAT16

Значение Описание
0000h Свободный кластер
FFF0h – FFF6h Зарезервированный кластер
FFF7h Дефектный кластер
FFF8h – FFFFh Последний кластер в цепочке
0002h – FFEFh Номер следующего кластера в цепочке

Таблица FAT является общей для всех файлов раздела. После форматирования все индексные указатели (ячейки таблицы FAT) принимают значение 0000h – «кластер свободен» (кроме дефектных и зарезервированных).

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

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

Размер индексных указателей определяет количество кластеров. Например, в FAT12 используются 12-ти битные указатели, поэтому возможно иметь только 212 = 4096 кластеров в области данных диска, в FAT16 – 216 = 65 536 кластеров и в FAT32 – более четырех миллиардов кластеров.

Так как количество кластеров ограничено, то размер кластера зависит от объема логического диска и обычно выбирается из диапазона от 1 до 128 секторов (от 512 байт до 64 Кбайт). Для уменьшения потерь из-за фрагментации желательно кластеры делать небольшими, а для сокращения объема адресной информации и повышения скорости обмена наоборот – чем больше, тем лучше.

Форматирование FAT12 обычно используется для гибких дисков. Файловую систему FAT16 целесообразно использовать для дисков с объемом до 512 Мбайт (несмотря на то, что эта файловая система позволяет иметь максимальный раздел логического диска до 4 Гбайт), чтобы размер кластера не превышал 8 Кбайт.

Для больших дисков до 32 Гбайт лучше подходит файловая система FAT32, которая способна использовать кластеры 4 Кбайт при работе с логическими дисками объемом до 8 Гбайт или кластеры 8 Кбайт для дисков от 8 Гбайт до 16 Гбайт.

Дальнейшее увеличение объема логического диска приводит к дальнейшему увеличению размера кластера (16 Кбайт или 32 Кбайт) и потерь за счет неполноты заполнения последнего кластера файла.

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

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

Понятие «файл» для файловой системы включает не только имя и хранимые в выделенных кластерах данные, но и атрибуты – свойства файла. Поэтому в каталогах файловой системы для каждого файла выделяется запись (строка) размером 32 байта, в которой в FAT16 и FAT12 указываются следующие данные:

· имя файла – 8 символов (8 байт);

· расширение файла – 3 символа (3 байта);

· атрибуты файла (1 байт) – архивный, скрытый, системный, только для чтения;

· резерв – 10 байт;

· время последней записи (2 байта);

· дата последней записи (2 байта);

· номер начального кластера (2 байта);

· размер файла в байтах (4 байта).

В FAT32 для номера начального кластера выделено 4 байта и вместо резервной области добавлены следующие атрибуты:

· время создания файла (2 байта);

· дата создания файла (2 байта);

· дата последнего доступа (2 байта).

Корневой каталог отличается от обычного файла-каталога тем, что он помимо размещения в фиксированном месте логического диска (см. рис. 2.9)имеет еще и фиксированное число записей – 512.

Раньше в ОС использовались лишь короткие имена файлов по схеме «8.3». Начиная с Windows 95OSR2 файловые системы FAT16 стали поддерживать длинные имена файлов размером до 255 символов, причем каждый символ хранится в двухбайтном формате Unicode.

Имя по схеме «8.3» стали называть «коротким именем» и оно по-прежнему хранится в первых 11 байтах записи каталога (для совместимости со старыми приложениями), а длинное имя помещается порциями по 13 символов в одну или несколько записей, следующих непосредственно за основной записью каталога.

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

Файловая система NTFS (New Technology File System – файловая система новой технологии) была разработана в качестве основной файловой системы для операционных систем Windows на основе технологии NT в начале 1990-х годов с учетом опыта разработки существовавших файловых систем и предназначалась в первую очередь для серверов.

Основные отличительные свойства NTFS:

· поддержка больших файлов и больших дисков объемом до 264 байт, так как используется 64-х битная нумерация кластеров;

· надежность – за счет введения средств самовосстановления после сбоев программ и аппаратуры управления дисками (в начале операции, связанной с изменением файловой структуры, делается соответствующая запись в журнале транзакций и если после сбоя операция помечена как незавершенная, то происходит откат – незавершенные операции отменяются и файлы возвращаются в исходное состояние);

· высокая скорость операций –за счет использования в качестве базовой единицы распределения дискового пространства непрерывных областей кластеров, называемых отрезками; при этом в качестве адреса отрезка используется логический номер его первого кластера, а также количество кластеров в отрезке;

· ограничение доступа к файлам и каталогам на основании разрешений, которые устанавливаются для учетных записей пользователей;

· расширенные функции, например квотирование (в Windows 2000/XP), при котором пользователи могут хранить свои файлы только в пределах отведенной им квоты на дисковое пространство.

Отличием NTFS является деление на кластеры всего пространство логического диска, называемого томом, а не только области данных, как в FAT. Порядковый номер кластера в томе называется логическим номером кластера(Logical Cluster Number, LCN). Файловая система NTFS поддерживает размеры кластеров от 512 байт до 64 Кбайт (от 1 до 128 секторов). Обычно используется кластер размером 2 Кбайт или 4 Кбайт.

В отличие от FAT весь том состоит из файлов. Каждый файл также состоит из последовательности кластеров, при этом порядковый номер кластера внутри файла называется виртуальным номером кластера (Virtual Cluster Number, VCN).

Базовой единицей распределения дискового пространства на томе NTFS является отрезок – непрерывная область кластеров. Каждый отрезок обозначается логическим номером его первого кластера LCN и количеством кластеров в отрезке k, то есть парой чисел: (LCN, k). Часть файла, начинающаяся с виртуального кластера VCN, при размещении в отрезке характеризуется адресом, состоящим их трех чисел: (VCN, LCN, k).

Основной структурой файловой системы NTFS является файл MFT, называемый главная таблица файлов (Master File Table, MFT), в которой содержатся записи о каждом файле тома, включая и сам файл MFT.

Под файл MFT на диске выделяется 12 % места (с учетом дальнейшего роста таблицы файлов).

Каждая запись MFT имеет фиксированную длину, зависящую от объема диска, – 1, 2, или 4 Кбайт. Для большинства дисков, используемых сегодня, размер записи MFT равен 2 Кбайт. Номер записи MFT, определяемый ее позицией в таблице, становится номером описываемого файла.

Первые 16 записей являются записями о служебных файлах NTFS, называемых метафайлами, причем самый первый метафайл – это сам файл MFT. В табл. 2.3 представлено назначение метафайлов.

Часть тома с записями метафайлов – единственная часть логического диска, имеющая строго фиксированное положение и образует первый отрезок на томе. Копия этих же 16-ти записей MFT (для надежности) хранится в середине тома. Оставшаяся часть файла MFT может располагаться, как и любой другой файл, в произвольных местах диска – восстановить его положение можно с помощью первой записи MFT.

Таблица 2.3

Метафайлы NTFS

Номер записи Назначение служебного файла Имя файла
Главная таблица файлов $Mft
Копия первых 16 записей таблицы, размещенных посередине тома $MftMirr
Файл журнала транзакций – используется для восстановления файловой системы после сбоя $LogFile
Информация о томе – метка тома, версия NTFS и др. $Volume
Таблица стандартных атрибутов файлов на томе $AttrDef
Корневой каталог $
Битовая карта свободных кластеров на томе (1/0 – на кластер) $Bitmap
Адрес загрузочного сектора (если раздел загрузочный) – располагается в первом секторе тома $Boot
Файл плохих кластеров $BadClus
Таблица квот - квоты используемого пространства на диске для каждого пользователя $Quota
Таблица преобразования символов в именах файлов в кодировке Unicode $Upcase
11-15 Зарезервировано для будущего использования  

Каждый файл и каталог на томе NTFS состоит из набора атрибутов, к которым относится и имя файла, и его данные. Существует два способа хранения атрибутов файла – резидентное хранение в записях таблицы MFT и нерезидентное хранение – вне ее, во внешних отрезках.

Файлы NTFS в зависимости от способа размещения делятся на:

· небольшие;

· большие;

· очень большие;

· сверхбольшие.

Небольшие файлы. Если файл имеет небольшой размер (несколько сот байт), то он может целиком располагаться внутри одной записи MFT.

Такие файлы состоят из следующих атрибутов (рис. 2.10):

· стандартная информация (SI) – время создания файла, время обновления и т. п.;

· имя файла (FN);

· данные (Data);

· дескриптор безопасности (SD – security descriptor) – информация о правах доступа к файлу пользователей.

Значение индексных указателей таблицы FAT16 - student2.ru

Рис. 2.10. Структура небольшого файла на томе NTFS (в записи MFT)

Большие файлы. Если данные файла не помещаются в одну запись MFT, то этот факт отражается в заголовке атрибута Data, который указывает на нерезидентное хранение данных, а сам атрибут Data содержит адресную информацию (VCN, LCN, k) каждого отрезка данных (рис. 2.11).

Значение индексных указателей таблицы FAT16 - student2.ru

Рис. 2.11. Структура большого файла на томе NTFS

Таким образом, для размещения большого файла используется одна запись в таблице MFT и некоторое количество отрезков кластеров вне таблицы MFT.

Очень большие файлы. Формируются если в атрибуте Data недостаточно места для размещения всей адресной информации об отрезках с данными файла. В этом случае атрибуту Data выделяется целиком другая запись (строка) таблицы MFT, а ее номер указывается в первой записи в специальном атрибуте (AL) (рис. 2.12).

Значение индексных указателей таблицы FAT16 - student2.ru

Рис. 2.12. Структура очень большого файла на томе NTFS

Сверхбольшие файлы. Формируются в том случае, если атрибут Data, хранящий адреса нерезидентных отрезков данных, не помещается в одной отдельной записи MFТ. Номера всех занятых записей указываются в первой записи файла в атрибуте AL (Attribute List – список атрибутов).

Каждый каталог на томе NTFS тоже является файлом, у которого вместо атрибута Data имеется атрибут IR (Index Root – корень индекса), в котором хранятся имена файлов с соответствующими номерами записей в таблице MFT. Каталоги, как и обычные файлы, могут быть небольшими, целиком помещающиеся в одной записи MFT, и большие, использующие для хранения атрибутов файлов нерезидентные отрезки кластеров.

Наши рекомендации