27 Файловая система FFS. Основные отличия от s5fs:
В Суперблоке не содержится данные о свободном пространстве файловой системы, данные суперблока не меняются на протяжении всего времени существования файла.
Организация файловой системы предусматривает логическое деление дискового раздела на одну или несколько групп цилиндров ( cylinder group) – несколько последовательных дисковых цилиндров. Каждая группа цилиндров содержит управляющую информацию – резервную копию суперблока, массив inode данные о свободных блоках и итоговую информацию об использовании дисковых блоков в группе.
Супер Массив свободных ilist Блоки Супер Массив ilist Блоки Супер
Блок блоков и inode Хранения блок свободных Хранения блок
Данных блоков и inode Данных |
Структура файловой системы FFS
Кластеры inode расположены по всему разделу -> уменьшается время доступа к данным конкретного файла и увеличивается надежность т к меньше вероятность потери всех индексных дескрипторов.
Управляющая информация располагается с различным смещением от начала группы цилиндров так что потеря одного сектора, цилиндра или пластины не приведет к потере всех копий суперблоков.
При большом размере длоков данных потери дискового пространства могут достигать 60%. Эта проблема была решена с помощью возможности фрагментации блока – блок может быть разбит на 2 4 или 8 фрагментов. Блок – единица передачи данных в операцияох ввода – вывода а фрагмент определяет адресуемую единицу хранения данных на диске.
Информация о свободном пространстве хранится не в виде списка свободных блоков а в виде битовой карты блоков. Карта блоков, связанная с определенной группой цилиндров описывает свободной пространство в фрагментах, для определения того, свободен данный блок или нет, ядро анализирует биты фрагментов, составляющих блок.
Существенно улучшились алгоритмы размещения свободных блоков и inode, влияющие на расположение файлов на диске:
Файл по возможности размещается в блоках хранения данных, принадлежащих одной группе цилиндров где расположены его метаданные.
Все файлы каталога по возможности размещаются в одной группе цилиндров.
Каждый новый каталог по возможности помещается в группу цилиндров, отличную от группы родительского каталога.
Последовательные блоки размещаются исходя из оптимизации физического доступа.
Все описанные достоинства FFS проявляются только если имеется как минимум 10% свободного места.
Структура каталогов – была изменена для поддержки длинных имен файлов (до255). Запись каталога представлена структурой: d_ino – Номер inode (индекс в массиве ilist); d_reclen – Длина записи; d_namlen – Длина имени файла; d_name[] – Имя файла.
|