Лекция №5
Системы
управления файлами.
Файловая система FAT. Файловые системы VFAT и FAT32.
Вопросы:
1. Области
логического диска
2.
Загрузочный сектор
3. Таблица
размещения файлов
4. Корневой
каталог
5. Файловая система VFAT
6. Файловая система FAT32
В файловой системе FAT дисковое пространство любого логического диска делится на две области:
·
системную область и
·
область данных.
Системная область создается и инициализируется при форматировании, а впоследствии обновляется при манипулировании файловой структурой.
Системная область состоит из следующих компонентов:
·
загрузочного сектора, содержащего загрузочную запись (boot record);
·
зарезервированных секторов (их может и не быть);
·
таблицы размещения файлов (FAT, File Allocation Table);
·
корневого каталога (Root directory, ROOT).
Эти компоненты расположены на диске друг за другом.
Область данных содержит файлы каталоги, подчиненные корневому.
В отличие от системной области, область данных доступна через пользовательский интерфейс DOS.
Загрузочный сектор
! |
Формирование загрузочной записи происходит при форматировании (например, FORMAT). Формат загрузочного сектора зависит от ОС и даже от версии.
Загрузочный сектор является самым первым на логическом диске. Он содержит загрузочную запись (boot record).
Загрузочная запись состоит из двух частей:
·
блока параметров диска (disk parameter block) - часто наз.
блоком параметров BIOS (BPB) или
Extended BPB (для более
старших версий ОС)
·
программы начальной загрузки ОС (system bootstrap).
Первые два байта загрузочной записи - команда безусловного перехода на системный загрузчик - JMP 3Eh. В третьем байте - NOP (90h).
Далее - 8 байтовый системный идентификатор (информация о фирме-разработчике и версии ОС). Обратим внимание - ОС не используется.
Затем следует блок параметров диска, а после него - загрузчик ОС.
Блок параметров диска содержит следующую информацию
·
размер сектора,
· число секторов в кластере,
· число зарезервированных секторов,
· количество копий FAT,
· максимальное количество элементов ROOT,
· количество секторов в таблице FAT,
· число секторов на дорожке,
· метку тома,
· имя файловой системы
· и другие параметры (байт-описатель среды по смещ 0Ah = F8H- ж.д. любой емкости; F0-дискета 1.44, 3.5’’).
Загрузочные записи различных операционных систем отличаются обычно структурой блока параметров. В некоторых есть и дополнительные поля.
Подробно мы познакомимся с загрузочной записью на лабораторных работах.
Между загрузочным сектором и FAT могут находиться
зарезервированные секторы, которые являются служебными для файловой системы или
не используются. Количество зарезервированных секторов определено в BPB. (В форматном просмотре - Reserved sectors at beginning - если
=1, то это MBR)
Для просмотра и редактирования, а также сохранения и восстановления загрузочной записи можно использовать утилиту Disk Editor.
Таблица размещения файлов
Таблица размещения файлов (File Allocation Table - FAT) по сути является картой области данных.
Область данных разбивают на так называемые кластеры. Кластер - это один или несколько смежных секторов области данных. С другой стороны, кластер - это минимальная адресуемая единица дисковой памяти, выделяемая файлу. Т.е. файл или каталог занимает целое число кластеров. Для создания и записи на диск нового файла операционная система отводит для него несколько свободных кластеров диска. Эти кластеры не обязательно должны следовать друг за другом. Для каждого файла хранится список всех номеров кластеров, которые предоставлены данному файлу.
На дискетах кластер занимает
один или два сектора, а на жестких дисках - в зависимости от объема раздела:
для разделов емкостью 16-127
Мбайт - 4 сектора в кластере (размер
кластера - 2 Кбайта);
для разделов емкостью
128-255 Мбайт - 8 секторов в кластере
(4 Кб);
для разделов емкостью
256-511 Мбайт - 16 секторов в кластере
(8 Кб);
для разделов емкостью
512-1023 Мбайт - 32 сектора в кластере
(16 Кб);
для разделов емкостью
1024-2047 Мбайт - 64 сектора в кластере
(32 Кб).
Разбиение области данных на кластеры вместо использования секторов позволяет:
· уменьшить размер таблицы FAT;
· уменьшить фрагментацию файлов;
· сокращается длина цепочек файла Þ ускоряется доступ к файлу.
Однако слишком большой размер кластера ведет к неэффективному использованию области данных, особенно в случае большого количества маленьких файлов (ведь на каждый файл теряется в среднем полкластера).
В современных файловых системах (FAT32, HPFS, NTFS) эта проблема решается за счет ограничения размера кластера (максимум 4 Кбайта)
Каждый элемент таблицы FAT (12, 16 или 32 бит) соответствует одному кластеру диска и характеризует его состояние: свободен, занят или является сбойным кластером (bad cluster).
· Если кластер распределен какому-либо файлу (т.е., занят), то соответствующий элемент FAT содержит номер следующего кластера файла;
· последний кластер файла отмечается числом в диапазоне FF8h - FFFh (FFF8h - FFFFh);
· если кластер является свободным, он содержит нулевое значение 000h (0000h);
· кластер, непригодный для использования (сбойный), отмечается числом FF7h (FFF7h).
Таким образом, в таблице FAT кластеры, принадлежащие одному файлу связываются в цепочки.
Первый элемент FAT описывает среду загрузочного
сектора. Его первый байт совпадает с байтом-описателем среды носителя данных
(смещение 0Ah - см. табл.4) и равен 0F0h
для гибкого
магнитного 3,5 дм. диска или 0F8h для жесткого диска.
Следующие 5 байт (7 байт) для 12-разрядного (16-разрядного) формата содержат
значение 0FFh.
Таблица размещения файлов хранится сразу после загрузочной записи логического диска, ее точное расположение описано в специальном поле в загрузочном секторе.
Она хранится в двух идентичных экземплярах, которые следуют друг за другом. При разрушении первой копии таблицы используется вторая.
В связи с тем, что FAT используется очень интенсивно при доступе к диску, она обычно загружается в ОП (в буфера ввода/вывода или кэш) и остается там настолько долго, насколько это возможно.
Основной недостаток FAT - медленная работа с файлами. При создании файла работает правило - выделяется первый свободный кластер. Это ведет к фрагментации диска и сложным цепочкам файлов. Отсюда следует замедление работы с файлами.
Для просмотра и редактирования таблицы FAT можно использовать утилиту Disk Editor.
Корневой каталог ROOT
Подробная информация о самом файле хранится в другой структуре, которая называется корневым каталогом. Каждый логический диск имеет свой корневой каталог (ROOT, англ. - корень).
Корневой каталог описывает файлы и другие каталоги. Элементом каталога является дескриптор (описатель) файла.
Дескриптор каждого файла и каталога включает его
· имя (8 байт)
· расширение (3)
· дату создания или последней модификации (2)
· время создания или последней модификации (2)
· атрибуты (1) (архивный, атрибут каталога, атрибут тома, системный, скрытый, только для чтения)
· длину файла (для каталога - 0 ) (4)
· зарезервированное поле, которое не используется (10)
· номер первого кластера в цепочке кластеров, отведенных файлу или каталогу; получив этот номер, операционная система, обращаясь к таблице FAT, узнает и все остальные номера кластеров файла (2 байта).
Итак, пользователь запускает файл на выполнение. Операционная система ищет файл с нужным именем, просматривая описания файлов в текущем каталоге. Когда найден требуемый элемент в текущем каталоге, операционная система считывает номер первого кластера данного файла, а затем по таблице FAT определяет остальные номера кластеров. Данные из этих кластеров считываются в оперативную память, объединяясь в один непрерывный участок. Операционная система передает управление файлу, и программа начинает работать.
Для просмотра и редактирования корневого каталога ROOT можно также использовать утилиту Disk Editor.
Замечание. В последнее время объемы дисковых механизмов намного превысили максимально допустимый размер, приемлемый для FAT, - 8,4 Гбайт. Этот предел объясняется максимально возможными значениями в адресе сектора, для которого отводится всего 3 байта. Поэтому в подавляющем большинстве случаев при работе в среде Windows-систем FAT не используется (используют либо FAT32, либо NTFS).
Корпорация Microsoft рекомендует использовать FAT для разделов объемом 256 Мбайт и менее.
Файловая система VFAT
Файловая система VFAT (виртуальная FAT) впервые появилась в Windows for Workgroups 3.11 и была предназначена для файлового ввода/вывода в защищенном режиме.
Используется эта файловая система
в Windows 95.
Поддерживается она также и в Windows
NT 4.
VFAT - это «родная» 32-разрядная файловая система Windows95. Ее контролирует драйвер VFAT.VXD.
Управляет различными файловыми системами и
приложениями диспетчер устанавливаемых файловых систем - Installable File
Systems Manager.
! |
VFAT использует 32-разрядный код для всех файловых операций, может использовать 32-разрядные драйверы защищенного режима.
НО, элементы таблицы размещения файлов остаются 12- или 16-разрядными, поэтому на диске используется та же структура данных (FAT). Т.е. формат таблицы VFAT такой же, как и формат FAT.
VFAT наряду с именами «8.3» поддерживает длинные имена файлов. (Часто говорят, что VFAT - это FAT с поддержкой длинных имен).
Существует специальный механизм преобразования длинных имен в короткие и наоборот.
Вы помните, что длина имени
для DOS подчиняется правилу “8.3”, то есть, длина имени не должна превышать 8
символов, а расширения - 3. Главной особенностью файловой системы Windows 95 для пользователя является то, что максимальная длина имени файла в Windows 95 может достигать 256
символов,
включая пробелы. Ограничением длины имени файла служит путь к файлу: суммарная
длина пути и имени файла не может превышать 260 символов.
При создании файла в Windows95 ему присваивается сразу два имени - длинное и короткое (8.3). Короткое имя образуется из длинного путем удаления из него пробелов и символов / : * ? “ “< > I . Для восьмибуквенного имени файла используются первые шесть оставшихся символов длинного имени, символ “~“ (тильда) и порядковый номер. Для трехбуквенного расширения используются первые три символа после последней точки в длинном имени файла.
Например, короткие имена для файлов (в следующем порядке)
Article about Windows 95.DOS
Next article about Windows 95.DOS
Article about Windows NT.DOS
Microsoft office.HTML
Microsoft Windows. HTML
будут выглядеть так
ARTICL~1.DOC
NEXTAR~1.DOC
ARTICL~2.DOC
MICROS~1.HTM
MICROS~2.HTM
При этом в структуре ROOT, наряду с обычным дескриптором (называемым алиасным) для файла или каталога создаются дескрипторы специального вида, в которых и хранится длинное имя. Для специальных дескрипторов установлены атрибуты Read Only (только для чтения), System (системный), Hidden (скрытый), Volume Label (Метка Тома). Количество специальных дескрипторов зависит от длины имени.
Специальный дескриптор ссылается на кластер с номером О. Настоящий номер первого кластера, распределенного файлу или каталогу, находится в стандартном (алиасном) дескрипторе, расположенном непосредственно за специальными.
! |
Для томов VFAT нельзя пользоваться никакими утилитами, кроме утилит «понимающих» VFAT
Основной недостаток VFAT - большие потери на кластеризацию при больших размерах логического диска и ограничения на сам размер логического диска.
Файловая система FAT32
Это новая реализация идеи использования таблицы FAT.
FAT32 - это полностью самостоятельная 32-разрядная файловая система.
Впервые использовалась в Windows OSR2 (OEM Service Release 2).
В настоящее время FAT32 используется в Windows 98 и Windows ME.
Она содержит многочисленные усовершенствования и дополнения по сравнению с предыдущими реализациями FAT.
1. Намного эффективнее расходует дисковое пространство за счет того, что использует кластеры меньшего размера (4 Кб) - подсчитано, что экономится до 15%.
2. Имеет расширенную загрузочную запись, которая позволяет создавать копии критических структур данных Þ повышает устойчивость диска к нарушениям структур диска
3. Может использовать резервную копию FAT вместо стандартной.
4. Может перемещать корневой каталог, другими словами, корневой каталог может находиться в произвольном месте Þ снимает ограничение на размер корневого каталога (512 элементов, т.к. ROOT должен был занимать один кластер).
5. Усовершенствована структура корневого каталога
Появились дополнительные поля:
· время создания (2)
· дата создания (2)
· дата последнего доступа (2)
· старшее слово номера начального кластера
· младшее слово номера начального кластера
· контрольная сумма
По-прежнему для длинного имени файла используется несколько дескрипторов.
! |
Для томов FAT32 нельзя пользоваться никакими утилитами, кроме утилит «понимающих» FAT32