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

Том с файловой системой FAT имеет следующую структуру (рис. 8.26):

Рис. 8.26.

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

· полное имя файла;

· имя файла в формате "8.3" (8 символов для имени и 3 — для расширения, или типа, файла) для совместимости с системой MS-DOS;

· атрибуты "скрытый" (hidden), "системный" (system), "только для чтения" (read-only), "готовый к архивированию" (archive);

· номер начального кластера в цепочке кластеров, образующих файл.

Полный список кластеров, занимаемых файлом на диске, содержится в таблице размещения файлов (File Allocation Table, сокращенно FAT). От названия этой таблицы произошло и название самой файловой системы. На диске хранятся две идентичные копии FAT (на случай защиты от сбоя).

Каждый элемент таблицы FAT может иметь следующие значения:

· номер следующего кластера, занимаемого файлом;

· указание, что данный кластер — последний кластер файла (комбинация шестнадцатиричных цифр 0xFFFF);

· указание, что кластер свободен, т.е. не использован ни одним файлом (0x0000);

· указание, что кластер содержит один или несколько секторов с физическими дефектами и не должен использоваться.

На рис. 8.27 приведен пример фрагмента каталога для нескольких файлов с указанием первого кластера данного файла:

Рис. 8.27.

На рис. 8.28 приведен фрагмент таблицы FAT для перечисленных в данном каталоге файлов:

Рис. 8.28.

Наиболее существенное отличие версий FAT16 и FAT32 состоит в том, что в FAT16 указатель на номер кластера занимает 16 бит, а в FAT32 — 32 бита. Максимальный размер кластера файловых систем FAT в системах Windows 2000/XP/2003 — 64 килобайта. Отсюда можно вычислить, что максимальный размер тома с файловой системой FAT16 — 4 гигабайта. Максимальный размер тома с FAT32 теоретически — 8 терабайт, но на практике он ограничен размером 32 гигабайта (хотя Windows 2000/XP/2003 поддерживают тома большего размера, созданные в других ОС, например, в Windows 95 SR2 или Windows 98).

В табл. 8.1 приведены сведения о соответствии размера тома и размера кластера на данном томе для FAT16 и FAT32:

Таблица 8.1.
Размер тома Размер кластера для FAT16 Размер кластера для FAT32
До 32 Мбайт включительно 512 байт (1 сектор) Не поддерживается
33–64 МБ 1 КБ (2 сектора) 512 байт (1 сектор)
65–128 МБ 2 КБ (4 сектора) 1 КБ (2 сектора)
129–256 МБ 4 КБ (8 секторов) 2 КБ (4 сектора)
257–512 МБ 8 КБ (16 секторов) 4 КБ (8 секторов)
513 МБ–1 ГБ 16 КБ (32 сектора) 4 КБ (8 секторов)
1 ГБ–2 ГБ 32 КБ (64 сектора) 4 КБ (8 секторов)
2 ГБ–4 ГБ 64 КБ (128 секторов) 4 КБ (8 секторов)
4 ГБ–8 ГБ Не поддерживается 4 КБ (8 секторов)
8 ГБ–16 ГБ Не поддерживается 8 КБ (16 секторов)
16 ГБ–32 ГБ Не поддерживается 16 КБ (32 сектора)

Заметим, что каждый файл занимает целое число кластеров. Это означает, что последний кластер заполнен не целиком (в среднем — наполовину). Это второй вид фрагментации — потеря дискового пространства по причине неполного заполнения последнего кластера файла, причем, чем больше размер раздела и, соответственно, размер кластера, тем больше потери дискового пространства из-за данного вида фрагментации. Файловая система FAT32 с более медленным ростом размера кластера в зависимости от размера тома более эффективно расходует пространство на диске.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: