- •Лабораторна робота № 2 Дослідження файловой системи fat
- •Вимоги до лабораторної бази та перелік необхідного програмного забезпечення
- •Теоретичні відомості
- •Структура BootSector
- •Структура области root
- •Структура области fat
- •Поиск файла на логическом диске
- •Удаление файла на логическом диске
- •Контрольные вопросы:
- •Порядок выполнения лабораторной работы № 2
- •Формат записи для файла с длинным именем
- •Задание на дом:
Структура области root
Для размещения информации о каждом файле или каталоге отводится 32-байтная область следующей структуры:
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
NAME |
EXT |
ATR |
RESERVE |
||||||||||||
RESERVE |
TIME |
DATE |
ClstrNo |
Size of file |
|||||||||||
Смещение Назначение
000h имя файла или каталога;
008h расширение имени файла или каталога;
00Bh атрибуты файла или каталога;
00Ch резервируемые байты;
016h время создания файла или каталога;
018h дата создания файла или каталога;
01Ah начальный кластер размещения файла или каталога;
01Ch размер файла в байтах.
Поскольку на 3,5"дискете область ROOT занимает 9 секторов с номерами от 10 до 18, то в одном секторе можно записать информацию максимум о 16 файлах или каталогах (512/32=16), а в 9 секторах - о 224 файлах или каталогах (16 х 9 = 224). Таким образом, полученное число ограничивает максимальное количество файлов или каталогов, которые могут размещаться в корневом каталоге дискеты 224.
Структура области fat
Таблица распределения файлов FAT имеет следующую структуру:
Каждая запись в таблице FAT соответствует одному кластеру с тем же номером, что и запись. Разрядность записи определяет максимальное количество кластеров на логическом диске: для n-разрядной FAT максимальное количество кластеров составляет 2n-11. Например, для FAT-16 используются 16-разрядная нумерация кластеров, и их максимальное количество на логическом диске ограничено числом 216-11= 65536-11=65525. При значительном объеме логического диска и фиксированном числе кластеров приходится просто увеличивать размер кластера. Однако здесь также имеются ограничения: в кластер может быть включено максимум 64 сектора, то есть его размер не превышает 32 Кбайта. Таким образом, несложно подсчитать максимальный объем логического диска, который может быть создан при выборе файловой системы FAT-16:
216 x 32 Kb = 221 Kb = 2 Gb
(в приведенных расчетах для их упрощения мы приняли максимально число кластеров на логическом диске равным 216).
Помимо файловой системы FAT-16 существуют также FAT-12 (для дискет) и FAT-32. Последняя разновидность файловой системы FAT позволяет создавать логическое диски до 2 Tb. В каждой записи таблицы FAT хранится номер кластера, следующего за тем, которому соответствует данная запись. Это дает возможность находить «продолжение» файла даже в том случае, если на диске он занимает несоседние кластеры, то есть фрагментирован. Процесс «склеивания» файла из отдельных фрагментов можно продемонстрировать следующей схемой:
Начало этой цепочки кластеров задает номер первого кластера, хранящейся в данных файла в области ROOT (поле ClstrNo), а конец определяет специальный код конца файла EOF (End Of File) - 0F8h - 0FFh, который помещается в запись FAT,соответствующую последнему кластеру файла. Кроме того, есть специальными кодами обозначаются незанятые и дефектные кластеры:
000h - свободный кластер;
0F7h - дефектный кластер.
