Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект 17 страниц.doc
Скачиваний:
14
Добавлен:
15.06.2014
Размер:
826.37 Кб
Скачать

Лекция-14:

Файловая система FFS (Fast File System)

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

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

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

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

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

Производительность файловой системы существенно зависит от размера блока хранения данных. Чем больше размер блока, тем больше данных может быть прочитано без поиска и перемещения дисковых головок. FFS поддерживает размер блока до 64Kb. Для преодоления проблемы потери дискового пространства вводится возможность фрагментации дискового блока. Каждый блок дополнительно разбивается на 2, 4 или 8 фрагментов. Блок является единицей передачи данных в операциях ввода/вывода, а фрагмент определяет адресуемую единицу хранения данных на диске. Минимальный размер сегмента определяется размером сектора.

Информация о свободных блоках и фрагментах хранится виде битовой карты блоков. Карта блоков, связанная с определенной группой цилиндров, описывает свободное пространство в фрагментах. Для определения свободен фрагмент или занят, ядро ОС анализирует биты карты.

Файловая система FFS при размещении блоков использует стратегию, направленную на увеличение производительности. Основные принципы этой стратегии таковы:

  1. Файл по возможности размещается в блоках хранения данных, принадлежащих одной группе цилиндров, где расположены его метаданные.

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

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

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

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

Производительность данной файловой системы хороша при не слишком большой загрузке диска и ухудшается при малом свободном пространстве (менее 10% объёма).

Каталоги FFS

Структура каталогов файловой системы FFS изменена для обеспечения поддержки длинных имен файлов (до 255 символов). Запись каталога вместо фиксированной длины определяется структурой:

d_ino  номер индексного дескриптора

d_reclen  длина записи

d_namelen  длина имени файла

d_name[]  имя файла

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

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