Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SysSoft.doc
Скачиваний:
519
Добавлен:
16.03.2016
Размер:
4.36 Mб
Скачать

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

Как мы уже отмечали, аббревиатура FAT(fileallocationtable) расшифровывает­ся как «таблица размещения файлов». Этот термин относится к линейной таб­личной структуре со сведениями о файлах – именами файлов, их атрибутами и другими данными, определяющими местонахождение файлов (или их фрагмен­тов) в средеFAT. ЭлементFATопределяет фактическую область диска, в кото­рой хранится начало физического файла.

Вфайловой системеFATлогическое дисковое пространство любого логического диска делится на две области (рис. 4.6):системную областьиобласть данных.

Рис.4.6.Структура логического диска

Системная область логического диска создается и инициализируется при форма­тировании, а впоследствии обновляется при манипулировании файловой структу­рой. Область данных логического диска содержит файлы и каталоги, подчинённые корневому. Она, в отличие от системной области, доступна через пользователь­ский интерфейс DOS. Системная область состоит из следующих компонентов, расположенных в логическом адресном пространстве подряд:

 загрузочной записи (bootrecord,BR);

 зарезервированных секторов (reservedsector,ResSecs);

 таблицы размещения файлов (fileallocationtable,FAT);

 корневого каталога (rootdirectory,RDir).

Таблица размещения файлов

Таблица размещения файлов является очень важной информационной структу­рой. Можно сказать, что она представляет собой карту (образ) области данных, в которой описывается состояние каждого участка области данных. Область дан­ных разбивают на так называемые кластеры. Кластерпредставляет собой один или несколько смежных секторов в логическом дисковом адресном пространстве (точнее – только в области данных). В таблицеFATкластеры, принадлежащие одному файлу (некорневому каталогу), связываются в цепочки. Для указания номера кластера и системе управления файламиFAT-16 используется 16-бито­вое слово, следовательно, можно иметь до 216= 65536 кластеров (с номерами от 0 до 65535).

Кластер – это минимальная адресуемая единица дисковой памяти, выделяемая файлу (или некорневому каталогу). Файл или каталог занимает целое число кластеров. Последний кластер при этом может быть задействован не полностью, что приведет к заметной потере дискового пространства при большом размере кластера. На дискетах кластер занимает один или два сектора, а на жёстких дис­ках – в зависимости от объёма раздела (см. табл. 4.3).

Таблица 4.3.Соотношения между размером раздела и размером кластеров

в FAT16

Ёмкость раздела,

Мбайт

Количество секторов

в кластере

Размер кластеров,

Кбайт

16-127

4

2

128-255

8

4

256-511

16

8

512-1023

32

16

1024-2047

64

32

Номер кластера всегда относится к области данных диска (пространству, заре­зервированному для файлов и подкаталогов). Первый допустимый номер кла­стера всегда начинается с 2. Номера кластеров соответствуют элементам табли­цы размещения файлов.

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

Однако слишком большой размер кластера ведет к неэффективному использова­нию области данных, особенно в случае большого количества маленьких файлов. Как мы только что заметили, в среднем на каждый файл теряется около поло­вины кластера. Из табл. 4.3 следует, что при размере кластера в 32 сектора (объем раздела – от 512 Мбайт до 1023 Мбайт), то есть 16 Кбайт, средняя вели­чина потерь на файл составит 8 Кбайт, и при числе файлов в несколько тысяч1 потери могут составлять более 100 Мбайт. Поэтому в современных файловых системах (к ним, прежде всего, следует отнестиHPFS,NTFS,FAT32 и некото­рые другие, поддерживаемые ОС семействаUNIX) размеры кластеров ограничи­ваются (обычно – от 512 байт до 4 Кбайт). В FAT32 проблема решается за счёт того, что собственно самаFATв этой файловой системе может содержать до 228 кластеров2. Наконец, заметим, что системы управления файлами, созданные дляWindows 9xи Windows NT,могут работать с разделами размером до 4 Гбайт, на которых установлена система FAT,тогда как DOS,естественно, с такими разде­лами работать не сможет.

Достаточно наглядно идея файловой системы с использованием таблицы разме­щения файлов FATпроиллюстрирована рис.4.7. Из этого рисунка видно, что файл с именемMYFILE.TXTразмещается, начиная с восьмого кластера. Всего файлMYFILE.TXTзанимает 12 кластеров. Цепочка кластеров (chain) для нашего приме­ра может быть записана следующим образом: 8, 9, 0А, 0В, 15, 16, 17, 19, 1A, 1B, 1C, 1D. Кластер с номером 18 помечен специальным кодомF7 как плохой (bad), он не может быть использован для размещения данных. При форматировании обычно проверяется поверхность магнитного диска, и те секторы, при контрольном чтении с которых происходили ошибки, помечаются вFATкак плохие. Кластер 1Dпомечен кодом FF как конечный (последний в цепочке) кластер, принадле­жащий данному файлу. Свободные (незанятые) кластеры помечаются кодом 00; при выделении нового кластера для записи файла берется первый свободный кластер. Поскольку файлы на диске изменяются – удаляются, перемещаются, увеличиваются или уменьшаются, – то упомянутое правило выделения первого свободного кластера для новой порции данных приводит кфрагментациифай­лов, то есть данные одного файла могут располагаться не в смежных кластерах, а, порой, в очень удаленных друг от друга, образуя сложные цепочки. Естествен­но, что это приводит к существенному замедлению работы с файлами.

Рис.4.7.Основная концепцияFAT

Так как FATиспользуется при доступе к диску очень интенсивно, она обычно загружается в ОЗУ (в буфера ввода/вывода или кэш) и остается там настолько долго, насколько это возможно.

В связи с чрезвычайной важностью FATона обычно хранится в двух идентич­ных экземплярах, второй из которых непосредственно следует за первым. Об­новляются копииFATодновременно. Используется же только первый экземп­ляр. Если он по каким-либо причинам окажется разрушенным, то произойдет обращение ко второму экземпляру. Так, например, утилита проверки и восста­новления файловой структурыScanDiskиз ОСWindows9xпри обнаружении не­соответствия первичной и резервной копииFATпредлагает восстановить глав­ную таблицу, используя данные из копии. Упомянутый корневой каталог отличается от обычного каталога тем, что он, по­мимо размещения в фиксированном месте логического диска, ещё имеет и фик­сированное число элементов. Для каждого файла и каталога в файловой системе хранится информация в соответствии со структурой, изображенной в табл.4.4.

Таблица 4.4.Элемент каталога

Размер поля данных, байт

Содержание поля

11

Имя файла или каталога

1

Атрибуты файла

1

Резервное поле

3

Время создания

2

Дата создания

2

Дата последнего доступа

2

Зарезервировано

2

Время последней модификации

2

Дата последней модификации

2

Номер начального кластера в FAT

4

Размер файла

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

Рис.4.8.Структура системы файлов

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]