Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по файловым системам.doc
Скачиваний:
11
Добавлен:
26.11.2018
Размер:
138.24 Кб
Скачать

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

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

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

  • свободные области дискового пространства;

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

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

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

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

  • зарезервированных секторов;

  • таблицы размещения файлов;

  • корневого каталога.

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

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

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

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

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

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

16-127

4

2

128-255

8

4

256-511

16

8

512-1023

32

16

1024-2047

64

32

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

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

  • уменьшается возможная фрагментация файлов;

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

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

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

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

Таблица 2

Значение

Описание

000h

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

fff0h-fff6h

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

fff7h

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

fff8h-ffffh

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

0002h-ffefh

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

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

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

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