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

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

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

Под цилиндром понимается совокупность всех дорожек, принадлежащих разным поверхностям и находящихся на равном удалении от оси вращения. Данные о том, в каком месте диска записан тот или иной файл, хранятся в системной области диска в специальных таблицах размещения файлов (FAT-таблицах).

Секторы, не содержащие пользовательских данных (файлов), не отражены в FAT. К таким секторам относятся загрузочные секторы, таблицы размещения файлов и секторы корневого каталога.

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

Сектор - наименьшая физическая единица хранения данных.Размер сектора равен 512 байт. Поскольку размер FAT-таблицы ограничен, то для дисков, размер которых превышает 32 Мбайт, обеспечить адресацию к каждому отдельному сектору не представляется возможным. В связи с этим группы секторов условно объединяются в кластеры (блоки).

Кластер - наименьшая единица адресации к данным.Размер кластера, в отличие от размера сектора, не фиксирован и зависит от емкости диска.

Рисунок 20.1 – Структура жесткого диска

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

Рисунок 20.2

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

Возьмем, к примеру, (рисунок 20.2) файл mydoc.txt. В поле "указатель" стоит номер 01. По этому номеру, обратившись в FAT (номера ячеек написаны сверху), находим следующий номер 03. Обратившись по номеру 03, находим номер 04. Но номеру 04 находим номер 05, где записана команда "стоп". Итак, получилось, что файл находится в кластерах с номерами 01, 03, 04 и 05 (номера кластеров взяты произвольно для примера, чтобы облегчить понимание темы). Может так случится, что файл занимает всего один кластер, например файл zopa.sys.

На рисунке 20.3 показано, как эти файлы будут расположены на жестком диске.

Рисунок 20.3

Файловая система ОС, реализующих 16-разрядные поля в таблицах размещения файлов, называется FAT 16. Она позволяет разместить в FAT-таблицах не более 216 записей о местоположении единиц хранения данных и, соответственно, для дисков объемом от 1 до 2 Гбайт длина кластера составляет 32 Кбайт (64 сектора). Это не вполне рациональный расход рабочего пространства, поскольку любой файл (даже очень маленький) полностью оккупирует весь кластер, которому соответствует только одна адресная запись в таблице размещения файлов. Даже если файл достаточно велик и располагается в нескольких кластерах, все равно в его конце образуется некий остаток, нерационально расходующий целый кластер.

Для современных жестких дисков потери, связанные с неэффективностью файловой системы, весьма значительны и могут составлять от 25% до 40% полной емкости диска, в зависимости от среднего размера хранящихся файлов. С дисками же размером более 2 Гбайт файловая система FAT16 вообще работать не может.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: