Кластеры файловой системы
ФС ОС ОМ состоит из системной задачи АРХИВ, псевдозадачи ОБМЕНМД, псевдозадачи ОБМЕНМП и программ, реализующих методы доступа к файлам, выполняющихся в адресном пространстве задачи пользователя (см. рис.3).
Расположение программ доступа в пространстве пользователя позволяет снизить накладные расходы по доступу к отдельной записи файла. Для реализации программ методов доступа в файловой системе ОС ОМ используется кластерная техника.
При декомпозиции ФС на отдельные замкнутые компоненты элементами структуризации являются задачи ОС - АРХИВ, ОБМЕНМД, ОБМЕНМП, классы методов доступа. Такая декомпозиция позволяет представить ФС в виде многоуровневой иерархии элементов (см. рис.17).
Существует три основных уровня, на которые расслаивается файловая система: уровень структурированных файлов, уровень базового файла и физический уровень работы с файлами.
В файловой системе каждому методу доступа соответствует свой класс управления файлом соответствующей структуры. Каждый класс в иерархии характеризуется своим набором операций и собственным представлением файла на внешней памяти.
Для обеспечения независимости рабочих программ от операционной среды выполнения в ФС широко используются свойства эквивалентности классов. Система открыта для реализации собственных методов доступа. Рассмотрим более подробно функции каждого уровня.
Задачи АРХИВ, ОБМЕНМД и ОБМЕНМП реализуют физический уровень работы с файлами, открывающихся в дисковой и массовой памяти. Эти компоненты ФС решают вопросы отображения объектов на внешнюю память, обеспечения секретности, синхронизации, сохранности, именования, обменов, распределения внешней памяти, хранения атрибутов. Данный уровень выполняет операции открытия, закрытия, создания, уничтожения объектов, записи или чтения группы блоков, расширения пространства в рамках максимального размера, записи или чтения атрибутов.
Уровень базового файла реализуется классом управления базовым файлом прямого доступа с длиной записи в один блок.
Базовый файл реализует соответствующие обращения к задачам АРХИВ, ОБМЕНМД, ОБМЕНМП, управляет наращиванием файла в рамках максимального размера. Класс включает операции открытия, закрытия, создания, ликвидации, записи, чтения, записи и чтения атрибутов.
Классы управления структурированными файлами реализуют определеннную структуру представления в рамках базового файла и обеспечивает необходимый набор операций.
Стандартными структурированными файлами являются последовательные, прямые и ключевые файлы. Кроме того файлы подразделяются на файлы с постоянной и с переменной длиной записи, на файлы, размер записи которых вычисляются с точностью до байта либо до слова.
Последовательные файлы помимо стандартных операций открытия, закрытия, создания и уничтожения содержат операции установки текущего указателя на начало, конец или предыдущую запись; чтения текущей записи; занесения записи по текущему указателю; записи или чтения атрибутов файла.
Прямые файлы помимо стандартных операций имеют операции чтения записи по ее номеру, занесения записи по ее номеру, записи или чтения атрибутов файла.
Ключевые файлы помимо стандартных операций имеют операции занесения записи по ключу, выборки записи по ключу, записи или чтения атрибутов файла.
На каждом уровне представления файла в файловой системе файл имеет соответствующие атрибуты. На уровне задач АРХИВ, ОБМЕНМД, ОБМЕНМП такими атрибутами является таблица отображения файла на внешние устройства, права доступа, режим синхронизации.
Атрибутами базового файла являются текущий и максимальный размер файла.
Атрибутом последовательного файла является размер записи и адрес последней записи.
Часть атрибутов защищена (карта памяти), доступна только для тех компонентов, которые являются их владельцами (АРХИВ, ОБМЕНМД, ОБМЕНМП). Некоторые атрибуты могут меняться специальными командами (смена прав доступа, наращивание размера файла). Для остальных атрибутов обеспечивается их хранение и выборка по ключам.При создании файла соответсвующий кластер заносит характеризующие его атрибуты в область атрибутов файла со свойственным его классу ключом. При последующих открытиях кластер выбирает атрибуты по ключу. Отсутствие атрибута с данным ключом будет означать, что кластер не может обрабатывать структуру открытого файла (то есть файл создавался кластером другого класса). Замена класса в иерархии на эквивалентный (см. рис.17) не отразится на компоненте, использующем этот класс. Например, в файловой системе существуют типы базового файла для файлов на диске и в массовой памяти. Эти типы эквивалентны. Структурированные файлы одинаковым образом работают с такими файлами. Тип базового файла, с которым работает последовательный, задается как параметр при объявлении экземпляра последовательного файла на этапе компоновки.