Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
сппо_лекция_04.doc
Скачиваний:
20
Добавлен:
24.09.2019
Размер:
330.24 Кб
Скачать

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

Файловая система FAT (File Allocation Table — таблица размещения файлов) по­лучила свое название благодаря простой таблице, в которой указываются:

  • непосредственно адресуемые участки логического диска, отведенные для раз­мещения в них файлов или их фрагментов; О свободные области дискового пространства;

  • дефектные области диска (эти области содержат дефектные участки и не га­рантируют чтение и запись данных без ошибок).

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

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

Системная область логического диска создается и инициализируется при форма­тировании, а в последующем обновляется при работе с файловой структурой. Об­ласть данных логического диска содержит обычные файлы и файлы-каталоги; эти объекты образуют иерархию, подчиненную корневому каталогу. Элемент каталога описывает файловый объект, который может быть либо обычным файлом, либо файлом-каталогом. Область данных, в отличие от системной области, доступна через пользовательский интерфейс операционной системы. Системная область состоит из следующих компонентов (расположенных в логическом адресном про­странстве друг за другом):

- загрузочной записи (Boot Record, BR);

- зарезервированных секторов (Reserved Sectors, ResSec);

- таблицы размещения файлов (File Allocation Table, FAT); -

- корневого каталога (Root Directory, RDir).

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

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

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

Каждый файл занимает целое число кластеров. Последний кластер при этом мо­жет быть задействован не полностью, что при большом размере кластера может приводить к заметной потере дискового пространства. На дискетах кластер зани­мает один или два сектора, а на жестких дисках его размер зависит от объема раз­дела (табл. 6.1). В таблице FAT кластеры, принадлежащие одному файлу (или файлу-каталогу), связываются в цепочки. Для указания номера кластера в файло­вой системе FAT16 используется 16-разрядное слово, следовательно, можно иметь до 216 = 65 536 кластеров (с номерами от 0 до 65 535).

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

Емкость раздела, Мбайт

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

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

16-127

4

2

128-255

8

4

256-511

16

8

512-1023

32

16

1024-2047

64

32

Заметим, что в Windows NT/2000/XP разделы файловой системы FAT могут иметь размер до 4097 Мбайт. В этом случае кластер будет объединять уже 128 секторов.

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

Логическое разбиение области данных на кластеры как совокупности секторов взамен использования одиночных секторов имеет следующий смысл:

  • прежде всего, уменьшается размер самой таблицы FAT; О уменьшается возможная фрагментация файлов;

  • ускоряется доступ к файлу, так как в несколько раз сокращается длина цепочек фрагментов дискового пространства, выделенных для него.

  • Однако слишком большой размер кластера ведет к неэффективному использова­нию области данных, особенно в случае большого количества маленьких файлов. Как мы только что заметили, в среднем на каждый файл теряется около половины кластера. Из табл. 6.1 следует, что при размере кластера в 32 сектора (объем разде­ла при этом — от 512 до 1023 Мбайт), то есть 16 Кбайт, средняя величина потерь на файл равняется 8 Кбайт, и при нескольких тысячах файлов^ потери могут со­ставлять более 100 Мбайт. Поэтому в современных файловых системах размеры кластеров ограничиваются (обычно от 512 байт до 4 Кбайт), либо предоставляет­ся возможность выбирать размер кластера. Достаточно наглядно идею файловой системы, использующей таблицу размеще­ния файлов, иллюстрирует рис. 2.

Рис. 2. Иллюстрация основной концепции FAT

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

Таблица 2. Значения элементов FAT

Значение

Описание

0000h

FFF0h - FFF6h

FFF7h

FFF8h - FFFFh 0002h - FFEFh

Свободный кластер

Зарезервированный кластер

Плохой кластер

Последний кластер в цепочке

Номер следующего кластера в цепочке

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

В связи с тем, что таблица FAT используется при доступе к диску очень интенсив­но, она обычно загружается в оперативную память (в буферы ввода-вывода или в кэш) и остается там настолько долго, насколько это возможно. Если таблица боль­шая, а файловый кэш, напротив, относительно небольшой, в памяти размещаются только фрагменты этой таблицы, к которым обращались в последнее время.

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

Корневой каталог отличается от обычного файла-каталога тем, что он помимо раз­мещения в фиксированном месте логического диска имеет еще и фиксированное число элементов. Для каждого файла и каталога в файловой системе хранится ин­формация в соответствии со структурой, представленной в табл. 6.3.

Для работы с данными на магнитных дисках в системах DOS, которые имеют файло­вую систему FAT, удобно использовать широко известную утилиту Disk Editor из комплекта утилит Питера Нортона. У нее много достоинств. Прежде всего, она ком­пактна, легко размещается на системной дискете с MS DOS, снабжена встроенной системой подсказок и необходимой справочной информацией. Используя ее, можно сохранять, модифицировать и восстанавливать загрузочную запись, восстанавливать таблицу FAT в случае ее повреждения, а также выполнять много других операций. Основными недостатками этой программы на сегодняшний день являются ограниче­ния на размеры диска и разделов и отсутствие поддержки работы с такими распрост­раненными файловыми системами, как FAT32 и NTFS. Вместо нее теперь часто ис­пользуют утилиту Partition Magic, однако наилучшей альтернативой этой программе на сегодняшний день можно считать утилиту Администратор дисков от Acronis.

Таблица 3. Структура элемента каталога

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

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

11

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

1

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

1

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

3

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

2

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

2

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

2

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

2

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

2

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

2

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

4

Размер файла

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