Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Жесткие диски и их интерфейсы.doc
Скачиваний:
6
Добавлен:
02.12.2018
Размер:
683.52 Кб
Скачать
      1. Файлы и каталоги

Сразу после последней копии FAT на диске выделяется область корневого каталога. Размер корневого каталога задается при форматировании и определяет максимальное количство файлов и каталогов, которые могут быть описаны в корневом каталоге (В FAT32 корневой можно свободно наращивать по необходимости, подобно любому другому каталогу.). В нем указывается имя файла, номер начального кластера, длина, дата создания и некоторые атрибуты файла, такие как скрытый, системный, только для чтения и т.д., а также служебные признаки. В каталог могут входить и элементы, указывающие на вложенные каталоги. Вложенный каталог выглядит как обычный файл, описываемый соответствующим элементом родительского каталога. Вложенный каталог состоит из таких же элементов каталога. Любой каталог содержит 32-байтовые элементы — дескрипторы, описывающие файлы и другие каталоги. Формат дескриптора следующий:

Смещение

(байт)

Размер

(байт)

Содержимое

0

8

Имя файла или каталога, выровненное на левую границу и дополненное пробелами.

8

3

Расширение имени файла, выровненное на левую границу и дополненное пробелами.

11

1

Байт атрибутов файла

s-system

h-hidden

r-read only

a-archiv

d-directory

12

10

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

22

2

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

24

2

Дата создания файла или время его последней модификации

26

2

Номер первого кластера, распределённого файлу

28

4

Размер файла в байтах

Таблица 3 Структура каталога

Биты байта атрибута файла в элементе каталога указывают, имеет ли файл соответствующие атрибуты. Первый бит идентифицирует каталог, т.е данный элемент каталога указывет не на файл, а на каталог; второй отмечает файл в качестве метки логического диска. Обычно только операционная система может управлять значением этих битов. Кроме этого, файлы FAT имеют четыре специальных атрибута, которые могут применяться пользователем: архивный, системный, скрытый и атрибут «только для чтения»

В любом каталоге, кроме корневого, два первых дескриптора имеют специальное назначение. Первый дескриптор содержит в поле имени строку «.». Этот дескриптор указывает на содержащий его каталог, то есть каталог имеет ссылку на себя. второй специальный дескриптор имеет имя «..». Этот дескриптор указывает на каталог более высокого уровня.

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

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

      1. Структура fat

В FAT находятся списки кластеров, распределённых файлам. Область данных диска разбита на кластеры (cluster) — группы смежных секторов, называемые также единицами распределения пространства (allocation unit). Кластер – это несколько секторов, рассматриваемых операционной системой как единое целое. Каждый кластер имеет свой номер; размер кластера (число секторов) выбирается кратным степени числа 2 (размер кластера может быть описан фориулой 2n*512), в зависимости oт объема диска и размера FAT. Файл на диске занимает целое число кластеров, от одного до всех кластеров, входящих в область данных. Если файл занимает более одного кластера, то все кластеры, занимаемые файлом, организуются в цепочку кластеров (cluster chain). Количество файлов на диске не может превышать количества кластеров (элементов FAT). Расположение файлов в кластерах определяется с помощью таблицы размещения файлов FAT, в которой каждому кластеру соответствует свой элемент. Для того, чтобы прочитать файл целиком, необходимо найти его элемент в ката­логе и считать первый кластер, на который ссылается этот элемент, — это будет начало файла. Далее следует прочитать соответствующий ему элемент FAT и определить, является ли он последним. Если он не последний, то он показывает номер следующего кластера цепочки, который также должен быть считан в «хвост» ранее считанным кластерам. Когда очередь дойдет до последнего кластера в цепочке, следует отсечь лишние данные, если файл кончается не по границе кластера. Отсечение выполняется по длине файла, указанной в элементе каталога.

Кроме этого FAT содержит информацию о свободных кластерах, соответсвущие элементы таблицы будут содержать 0.

Приведен пример распыления файла, который начинается в 5384 кластере, а заканчивается в 5391 кластере.

5384 5385

5385 5390

5386

5387

5388

5389

5390 5391

5391 EOF

EOF

5384 – номер кластера.

- его содержание.

Таблица 4 Пример заполнения FAT

Таблица FAT может иметь 12-, 16- или 32-разрядный формат. Разрядность ячейки FAT определяется типом файловой системы.. При этом в таблице для хранения информации об одном кластере используется 12,16 или 32 бит.

12-битовый формат удобен для дискет с небольшим количеством секторов — вся FAT помещается в одном секторе диска.

Если размер диска таков, что для представления всех секторов недостаточно 12-ти разрядов, можно увеличить размер кластера, например, до восьми секторов. Однако большой размер кластера приводит к неэффективному использованию дискового пространства. Это происходит из-за того, что минимальный фрагмент дисковой памяти, выделяемый файлу, имеет слишком большой размер. Даже для файла размером 1 байт выделяется целый кластер. Значит, если размер кластера составляет 8 секторов, то для хранения одного байта будет использовано 4 КБайт дисковой памяти.

При использовании 16-битного формата таблицы FAT операционная система может работать с диском, который имеет размер более 32 МБайт. В файловой системе FAT32 как элементы FAT, так и номера секторов 32-разрядные. Это значит, что максимальный размер диска теперь 2 ТБайт (2199023255552 байт).

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

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