Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
34
Добавлен:
02.05.2014
Размер:
1.46 Mб
Скачать

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

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

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

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

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

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

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

Производительность файловой системы существенным образом зависит от размера блока хранения данных. Чем больше размер блока, тем больше количество данных может быть прочитано без поиска и перемещения дисковой головки. Файловая система FFS поддерживает размер блока до 64 Кбайт. Проблема заключается в том, что типичная файловая система UNIX состоит из значительного числа файлов небольшого размера. Это приводит к тому, что частично занятые блоки используются неэффективно, что может принести к потере до 60% полезной емкости диска.

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

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

Размер фрагмента задается при создании файловой системы, его максимальное значение определяется размером блока (0,5 размера блока), а минимальный – сектором.

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

Соседние файлы в папке Операционные системы