Поэтому, если необходимо разместить на диске маленький файл, например размером 20 байт, он все равно займет дисковое пространство размером в кластер (минимум 2 х 512 = 1024 байт).
Количество секторов в кластере должно быть равно целой степени 2. Таблица FAT 16 в 16 битах отображает значение максимального номера кластера, количество кластеров на диске (или в разделе диска) не больше, чем 216 = 65 525. По причине выхода за пределы 16-битной адресации внутри кластера его максимальный размер должен быть меньше 64 Кбайт. В FAT 16 размер кластера (и количество кластеров) можно определить, разделив объем памяти диска на 64 Кбайт (65525) и округлив результат до ближайшего большего числа, кратного степени двойки. Так, для диска емкостью 1,2 Гбайт размер кластера составит: 1258291,2/65,5 = 19,2 Кбайт, (после округления получим 32 Кбайт); для дисков емкостью 2 Гбайт размер кластера составит 64 Кбайт, а для 2,5 -гигабайтных дисков — более 64 Кбайт, что недопустимо.
Иными словами, FAT 16 практически может работать только с дисками емкостью не более 2 Гбайт. Поэтому была разработана более мощная 32-разрядная файловая система FAT32. В этой системе количество секторов и количество кластеров могут быть одинаковыми и не превышает 232 единицы. Хотя размер кластера с целью экономии дискового пространства можно было бы сделать равным одному сегменту, это не сделано по причине большого размера файла FAT — таблицы размещения файлов (по имени этой таблицы называют и всю файловую систему целиком), который для диска, например, емкостью 10 Гбайт в этом случае будет иметь размер 80 Мбайт (а таких файлов на диске должно быть два, и один из них при наличии кэш-памяти для диска загружается в ОП). Поэтому размеры кластеров в FAT32 приняты следующими (табл. 1).
Емкость диска, Гбайт | Размер кластера, Кбайт |
До 8 | |
До 16 | |
До 32 | |
Более 32 |
Примечание: На диске емкостью 20 Гбайт 10-байтовый файл будет занимать 16 Кбайт памяти (поскольку файл должен занимать целое число кластеров).
Кластеры, выделяемые одному файлу, могут находиться в любом свободном месте дисковой памяти и не обязательно являются смежными. Файлы, хранящиеся в разбросанных по диску кластерах, называются фрагментированными.
Используются следующие системы адресации информации на МД:
в системе BIOS — трехмерная: номер цилиндра (дорожки), магнитной головки (стороны диска), сектора;
в системе DOS — последовательная сквозная нумерация секторов, начиная от внешнего 0-го цилиндра (дорожки), головки 0, сектора 1.
На каждом диске можно выделить две области: системную и данных. В системной области диска (начинается с 0 дорожки, стороны 0, сектора 1) размещены три зоны, содержащие:
- главную загрузочную запись (MBR — main boot record), в которой описывается конфигурация диска: какой раздел (логический диск) является системным (из системного раздела возможна загрузка операционной системы), сколько разделов на этом диске, какого они объема.
- таблицу размещения файлов (FAT — file allocation table), содержащую код формата и полную карту принадлежности секторов файлам. FAT организована в виде списка кластеров (они нумеруются от 2 до N + 1, где N— полное число кластеров на диске), для каждого кластера в таблице указывается шестнадцатеричный код его признака: FFF1 — FFF7— кластер дефектный, 0002-FFFO — кластеры, используемые файлом (код соответствует номеру кластера, где продолжается текущий файл), FFF8 — FFFF — кластер содержит последнюю часть файла, 0000 — кластер свободен (все коды указаны для FAT 16).
Для каждого файла в корневом каталоге (3-я зона системной области) указывается номер его начального кластера, а в этом начальном и следующих кластерах в FAT указываются, соответственно, следующие кластеры файла, и так до последнего, где указан код FFFF. Таблица размещения файлов крайне важна, ибо без нее последовательно читать файл на диске (особенно если кластеры файла записаны не подряд, а через промежутки, занятые другими файлами) становится невозможно. Поэтому для надежности FAT на диске дублируется. Когда файл на диске удаляется, все его кластеры маркируются как свободные, но сами данные файла не удаляются (затираются только после записи на их место других данных) — то есть удаленные файлы можно восстановить (команда UNDELETE DOS, утилита UNERASE в пакете NC).
- корневой каталог диска — список файлов и/или подкаталогов с их параметрами. Параметры файла, содержащиеся в корневом каталоге: имя, расширение, атрибут, размер в байтах, дата и время создания или последнего обновления, номер начального кластера. Структура записи параметров файла в корневом каталоге показана в табл. 2.
Байты | Параметр | Размер, байт |
0-7 | Имя файла | |
8-10 | Расширение | |
Атрибут | ||
12-20 | Свободно | |
22-23 | Время | |
24-25 | Дата | |
26-27 | Начальный кластер | |
28-31 | Размер |
В области данных расположены подкаталоги и сами данные. На жестких дисках системная область создается на каждом логическом диске.