Роль FAT-таблицы размещения файлов

Файл размещается на диске по кластерам, которые пронумерованы. Эти кластеры могут на-
ходиться в разных местах диска, и соответственно файл будет храниться на диске в виде от-
дельных фрагментов в свободных на момент записи на диск кластерах. В этом случае
говорят, что файл фрагментирован. Желательно, чтобы кластеры, выделенные для
хранения файла, шли подряд, так как это позволяет сократить время его поиска. Однако это
возможно сделать только с помощью специальной программы, и подобная процедура полу-
чила название дефрагментации файла. И в том, и в другом случае для организации
доступа к файлу операционная система должна иметь сведения о номерах кластеров, где
размещается каждый файл. В этом ей помогает FAT-таблица.

FAT-таблица предназначена для размещения и поиска файлов на диске. Она хранится
на диске в определенном месте (см. рис. 9.10). Учитывая ее крайне важную роль в организа-
ции файловой системы, предусмотрено хранение и ее дубля, т.е. на диске хранятся две оди-
наковые таблицы — основная и дублирующая. При повреждении основной таблицы можно
восстановить информацию о размещении файлов с помощью дублирующей. Рассмотрим ос-
новную идею, заложенную в основу построения и использования FAT-таблицы, обратив-
шись к рис. 9.11. Следует заметить, что для ускорения доступа к таблице производится ее
предварительная загрузка в оперативную память.

Количество ячеек FAT-таблицы определяется количеством кластеров на диске. Каж-
дая ячейка содержит номер кластера.



Рис. 9.11.Организация доступа
к файлу с помощью FAT-таблицы


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

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