А.Н. Томилин - Операционные системы супер-ЭВМ (1156254), страница 3
Текст из файла (страница 3)
Для того, чтобы сбалансировать процессор с внешней памятью, используется массовая интегральная память емкостью до 256 Мгб, темпом обмена 0,64 мксек/слово, которая подключена через каналы с пропускной способностью 200 Мгб/сек.
Таким образом, внешняя память ОМ является двухуровневой: первичная внешняя паямть - интегральная массовая память и вторичная - дисковая память.
Обычный режим работы файловой системы - обработка активных файлов в массовой памяти, предварительно переписанных в нее из дисковой памяти. Однако существует возможность работы с файлами и на дисковой памяти, например, для файлов с последовательной организацией.
Принципиальной особенностью массовой памяти является наличие процессора массовой памяти. Процессор массовой памяти под управлением программ, реализующих тот или иной метод доступа к данным в массовой памяти, осуществляет генерацию адресов ячеек массовой памяти, участвующих в процессе обмена данными с оперативной памятью ОМ. Возможна, например, организация обмена только с ячейками, содержащими элементы некоторых строк, столбцов, диагоналей, клеток расположенных в массовой памяти матриц данных.
Использование процессора массовой памяти повышает суммарную эффективность системы, потому что освобождает процессор ОМ от рутинной работы и уменьшает время и число обменов с внешней памятью, поскольку поток данных между ОМ и массовой памятью будет содержать только полезную информацию.
3.3.2. Архитектура файловой системы.
При проектировании и реализации такой большой и сложной системы, какой является ФС ОМ, применялся метод декомпозиции системы на отдельные замкнутые компоненты.
Базовые объекты ОС - задачи являются одновременно и элементами структуризации. Файловая система ОС ОМ состоит из системной задачи АРХИВ, псевдозадач ОБМЕНМД и ОБМЕНМП и программ, реализующих методы доступа к файлам - кластеров, выполняющихся в адресном пространстве задачи пользователя.
Выбор такой структуры ФС объясняется функциональными особенностями ФС, аппаратными особенностями ОМ, стремлением уменьшить накладные расходы по операциям ввода/вывода.
Расположение части ФС в задаче пользователя (кластеров, реализующих доступ к файлу и содержащих в своем теле буфер для обмена с внешними устройствами) объясняется стремлением снизить накладные расходы по доступу к отдельной записи файла. Вынесение кластера из задачи пользователя приводило бы к переключению задач при каждом обращении к файлу.
Реализация задач ОБМЕНМД и ОБМЕНМП со статусом псевдозадачи объясняется тем, что для задания обменов по каналам требуется привилегированный режим. Задача АРХИВ выполняется в отдельном адресном пространстве, поскольку число обращений к задаче АРХИВ по сравнению с числом обращений к задаче ОБМЕН за один сеанс работы с файлом мало и накладные расходы сравнительно невелики.
3.3.3. Структура ФС на внешней памяти.
ФС на логическом уровне является классической. Совокупность объектов ФС на внешней памяти составляет дерево. Узлами дерева являются справочники, листьями - файлы или пустые справочники. Корнем дерева является корневой справочник файловой системы. Каждый элемент дерева имеет имя. Имя уникально относительно предыдущего узла. Любой объект дерева однозначно именуется полным составным именем относительно корня архива. Специальные объекты ФС -синонимы позволяют преобразовывать имена. Синоним позволяет заменить имя в справочнике альтернативным, которое может быть как простым, так и составным.
Справочник состоит из элементов. Каждый элемент описывает либо объект ФС более низкого уровня по дереву, чем данный справочник, либо синоним. Объекты первого типа называются элементами типа ссылки, второго - элементами типа связи.
Элемент справочника типа связи содержит имя элемента - входное имя синонима, тип, выходное (альтернативное) имя синонима.
Элемент справочника типа ссылки содержит имя элемента, тип
- файл или справочник, уникальный идентификатор объекта, таблицу отображения описываемого объекта на внешнюю память, описание прав доступа, имя владельца объекта, поля атрибутов файла, открытых для изменения пользователем, дополнительную информацию (дату создания, модификации и т.п.).
Несмотря на то, что ОМ содержит два уровня памяти, для долговременного хранения пригодна только дисковая память, потому что в результате выключений ОМ содержимое массовой внешней памяти теряется. Поэтому в элементе справочника существует информация об отображении только на диски.
Каждый справочник отображается на отдельную область внешней памяти (совокупность подряд расположенных физических блоков). В целях повышения надежности (см. 3.3.7) справочники дублируются на разных дисках. Таким образом, таблица отображения для справочников состоит из двух элементов для каждого справочника, каждый элемент состоит из номера дискового устройства, адреса начала области и ее размера.
Файл может располагаться только на одном диске и отображаться на диск в виде совокупности областей. Размер первой области как правило превышает остальные. Все области, кроме первой, одинакового размера и называются областями приращений. Такие характеристики файла, как начальный размер, минимальный размер области приращений, максимальный размер файла задаются во время создания файла.
Файлы в зависимости от метода доступа могут обрабатываться как в массовой памяти,так и на дисках. На дисках обрабатываются файлы с последовательным методом доступа. В массовой памяти обрабатываются файлы с прямым, индексным или произвольным методом доступа. Кроме того, существует возможность обработки файла с последовательным методом доступа в массовой внешней памяти не целиком, а частично, когда в массовой памяти выделяется "окно", куда последовательно переносятся фрагменты файла с диска.
Перемещение объектов с одного уровня внешней памяти на другой осуществляется задачей АРХИВ в результате команд открытия соответствующих объектов.
При закрытии объектов, если они располагались в массовой памяти, модифицированные объекты отображаются на дисковую память, освобождая массовую память. При закрытии объектов, с которыми велась работа только на чтение, массовая память освобождается без отображения объекта на дисковую память.
Для того, чтобы файл стал доступен некоторой задаче, необходимо его открыть. Если файл открывается в массовой памяти, то последовательно выполняются следующие действия:
-
выделяется пространство в массовой памяти;
-
определяется местонахождение файла на диске;
-
файл переписывается с дисковой памяти в массовую;
-
задача ОБМЕНМП настраивается на данную область в массовой памяти.
Если файл открывается на диске, то после определения местонахождения файла на диске задача ОБМЕНМД настраивается на те области на диске, где находится требуемый файл.
При открытии файла по полному составному имени задача АРХИВ, начиная от корня, просматривает всю последовательность справочников, выбирая на следующем шаге соответствующий элемент по имени.
Существует возможность работать по коротким именам. Эту возможность поддерживает в ФС среда поиска. Каждому заданию соответствует отдельная среда поиска, которая задается последовательностью имен справочников. При обращении по короткому имени поиск осуществляется в той последовательности справочников, какую задает среда поиска. В начале выполнения задания для него формируется стандартная среда поиска, которую можно сменить явным обращением к задаче АРХИВ.
Просматривая последовательность справочников в процессе поиска по составному имени, на некотором шаге может встретиться синоним. Далее поиск осуществляется по новому имени, составленному соединением альтернативного имени и необработанной части исходного имени. Если альтернативное имя является полным составным, то поиск будет продолжен от корневого справочника, в противном случае - в соответствии с текущей средой поиска.
3.3.4. Распределение дисковой памяти.
Распределение дисковой памяти выполняется задачей АРХИВ автоматически при помощи таблиц распределения памяти. Каждый диск имеет собственную таблицу распределения памяти. Таблица создается при начальной генерации системы. В целях повышения надежности по отношению к сбоям таблица распределения на диске хранится в двух экземплярах (см. 3.3.7.). Одним из элементов таблицы распределения является карта памяти. Карта памяти представляется в виде шкалы, в которой отмечаются единицей все занятые блоки и нулем все свободные.
При запуске ОС задача АРХИВ переносит карты распределения памяти с дисков в массовую память.
Объекты ФС отображаются на внешнюю память в виде набора областей. Размер файла наращивается динамически в пределах максимального размера. Наращивание файла осуществляется по инициативе кластера соответствующего метода доступа. При попытке записи за текущую границу файла, но не за границу максимального размера файла, кластер обращается к задаче АРХИВ с командой расширения файла. АРХИВ ищет соответствующую область на том диске, где находится файл, и наращивает его таблицу отображения.
Области на диске выделяются равными степени двойки(используется разновидность известного алгоритма близнецов ). Всю память можно представить в виде дерева, листьями которого являются области памяти (свободные или занятые). Размеры листьев одного уровня равны между собой. Размеры листьев увеличиваются в два раза при переходе с некоторого уровня на предшествующий более высокий уровень. В начальном состоянии все дерево состоит из одной вершины - корня - размером в полную дисковую память (для простоты предположим, что размер дисковой памяти равен некоторой степени двойки).
При запросе области просматривается список областей уровня, соответствующего запросу. Если таких областей памяти нет, то запрашивается область удвоенного размера на более высоком уровне. Полученная область делится пополам. Половина выдается в качестве ответа на запрос, половина помечается свободной.
Возвращаемые области либо помечаются свободными (если нет свободных братьев), либо вкупе со свободным братом образуют удвоеннную область, которая возвращается на более высокий уровень. Братьями являются только те области, которые получились делением более крупной области.
Одной из проблем распределения динамической памяти является фрагментация. Одним из аргументов в пользу приведенного алгоритма является его удобство и эффективность для борьбы с фрагментацией. Фрагментация наступает, когда не удовлетворяется запрос на область при наличии достаточного объема фрагментированной свободной памяти. При возникновении фрагментации запускается системная обслуживающая программа уплотнения памяти, которая работает следующим образом.
Определяются все справочники, содержащие файлы на данном диске. Составляется таблица соответствий (область, справочник), в которой для каждой занятой области на данном диске ставится в соответствии справочник, в котором имеется ссылка на эту область. После этих подготовительных действий происходит собственно уплотнение при помощи таблицы свободной памяти. Уплотнение выполняется поэтапно. Сначала уплотняется память на самом нижнем уровне, затем на последующем и т.д. до того уровня, на котором уплотнение не требуется.
В результате перемещения на одном уровне будут находиться сначала все занятые области, а затем свободные. После перемещения модифицируются справочники, которые были затронуты уплотнением - в таблице отображения соответствующего справочника проставляются новые адреса передвинутых областей (для этого и строилась таблица соответствий). После модификаций справочники отображаются на диск. При возникновении сбоев и отказов пропажи или порчи файлов не будет (см. 3.3.7.), потому что в рамках одного этапа уплотнения переписи происходят только в свободные области. Далее все свободные блоки, собранные на конце одного уровня, укрупняются по общим правилам и возвращаются на предшествующий более высокий уровень. На следующем этапе происходит все то же самое для более высокого уровня иерархии.
Данный алогоритм более эффективен при решении проблемы уплотнения по сравнению с другими известными алгоритмами (первый подходящий, наиболее подходящий).
3.3.5. Распределение массовой памяти.
Одной из функций ФС является перемещение объектов архива между уровнями внешней памяти. Промежуточным уровнем между дисковой и оперативной памятью служит массовая память. Так как при открытии файлов они переносятся с дисковой памяти в массовую память, где происходит основная обработка файлов, ФС должна распределять и массовую память.
Объекты ФС отображаются на одну или две области массовой памяти (вторая область - фрагмент приращения). Отображения располагаются в таблице активных файлов задачи ОБМЕНМП.
При открытии файл отображается на одну область. Если файл обрабатывается в режиме только чтения, отображение не меняется. Если файл обрабатывается в режиме модификации, то возможно,что его размер будет увеличен. Общая дисциплина управления динамическими файлами такова: при увеличении размера файла за исходную границу выделяется фрагмент приращений. Если его не хватает для расширения файла, запрашивается фрагмент, превышающий вдвое размер предыдущего фрагмента приращений; осуществляется пере-
пись исходного фрагмента приращений в новый; заменяется отображение в задаче ОБМЕНМП. Процесс будет повторен таким образом до тех пор, пока фрагмент приращений не станет сравнимым с начальным файлом, после чего будет запрошен удвоеннный размер файла, в него будет переписан исходный файл и фрагмент приращений, затем обработка будет продолжена по общей схеме.
Распределение массовой памяти происходит по такому же алгоритму, как и распределение дисковой памяти. Вся память делится на области. Минимальный размер области - блок 512 слов. Последующие размеры областей: 2*512, 4*512, ...
При наступлении фрагментации происходит уплотнение массовой памяти с модификацией отображений в таблице активных файлов задачи ОБМЕНМП.
Начальный размер фрагмента приращений равен 25% от размера файла и далее удваивается до размера файла. Для файла в 128 блоков приращения будут увеличиваться таким ступенями: 32, 64,
128. На любом этапе увеличения фрагмента приращений коэфициент использования внешней памяти будет не хуже 75%.