История отечественной вычислительной техники

Принципы структурного проектирования ядра многорежимной операционной системы

Изложены принципы структурного проектирования многорежимной ОС для ЭВМ М-10: принцип иерархии виртуальных машин и вертикальной декомпозиции подсистем ОС на задачи и модули. Предложен метод отображения виртуальных машин ОС в системные процессы, образующие очередь с абсолютными приоритетами, что обеспечивает работу ОС в “жестком” реальном времени.

Применение многопроцессорной ЭВМ М-10 [1] в сложных системах реального времени привело к необходимости разработки для нее многорежимной операционной системы ОС [2]. Основными особенностями этой ОС являются:

  • управление вычислительной системой в режиме реального масштаба времени (РМВ), разделения времени (РВ) и их совмещение;
  • динамическая настройка на любой из режимов управления.

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

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

В основу проектирования ОС был положен принцип иерархии виртуальных машин (ВМ), предложенный Дейкстрой [3]. Однако в отличие от реализации ВМ ОС как набора подпрограмм был применен способ их реализации в виде процессов: каждой виртуальной машине соответствовал свой процесс. Выбор такой схемы реализации ВМ обусловлен двумя причинами: архитектурой М-10 и необходимостью работы в рамках “жесткого” реального времени.

Основные системные процессы, типичные для таких ОС, как Т. Н. Е., выполняются в М-10 на аппаратном уровне. Для соблюдения общей концепции процессов иерархия подпрограмм, составляющих ВМ, также была организована в процессы [4]. Вызов любой из виртуальных машин ОС сопровождается инициацией реализующего ее процесса. Отображение виртуальных машин в процессы позволило решить вопросы построения ОС как системы, работающей в “жестком” реальном времени, для чего между процессами был установлен абсолютный приоритет. Функции ОС, требующие наименьшего времени реакции, были привязаны к наиболее приоритетным процессам. Следует отметить, что между временем реакции и уровнем виртуальной машины, на которой функция выполняется, существует взаимно-однозначное соответствие.

Наименьшего времени реакции требуют функции, связанные с управлением аппаратурой вычислительной системы и внешними прерываниями, наибольшего — функции логического уровня подсистем ОС. Таким образом, иерархия ВМ была отражена в векторе системных процессов, абсолютный приоритет которых возрастает слева направо, что соответствует увеличению уровня ВМ от 0 до n.

Концепция процессов предполагает описание динамики вычислений в терминах формальных объектов, какими являются процессы. Конкретное содержание процессы приобретают тогда, когда на них загружаются активизируемые программы. В качестве планируемой программной единицы ОС, загружаемой на процесс, были выбраны задачи. Задача представляет собой законченную, достаточно крупную функцию ОС, для выполнения которой требуются определенные ресурсы: память, время, ресурсы ВМ нижних уровней. Одновременно задача является программным ресурсом для ВМ более высоких уровней.

Главным критерием декомпозиции ОС на задачи явилось наличие соответствующих запросов — прерываний. Основное множество запросов было определено при спецификации системы в виде директив пользователей — экстракодов и сигналов от аппаратуры вычислительной системы. Запросы распределялись по ВМ в соответствии с принципом иерархического (вертикального) взаимодействия задач: от ВМn к ВМ0. Взаимодействие задач внутри одной ВМ не допускалось. Функции, разделяемые между подсистемами, оформлялись в отдельную задачу, вызываемую соответствующим внутренним экстракодом ОС. Каждая задача имеет один вход и один выход; управление задачами выполняет диспетчер ОС [4]. Так как число задач больше, чем число ВМ, то каждой виртуальной машине “приписывается” некоторое подмножество задач, которые и определяют возможности этой ВМ. Порядок исполнения задач на процессе является статическим и определяется в процессе проектирования.

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

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

Литература

  1. Карцев М. А. Вычислительная машина М-10. — Доклады АН СССР, т. 245, 1979, № 2.
  2. Гахария В. К. Режим разделения времени в управляющих комплексах. — Вопросы радиоэлектроники, сер. ЭВТ, 1981, вып. 10.
  3. Dijkstra E. W. The structure of T. H. E. multiprogramming system. — C. A. M., 1968, v. 11, № 5.
  4. Гахария Л. Г. Управление функциями многорежимной операционной системы для ЭВМ М-10. — Вопросы радиоэлектроники, сер. ЭВТ, 1982, вып. 6.

Статья опубликована в сборнике “Вопросы радиоэлектроники”, серия “Электронная вычислительная техника”, вып. 9, 1984 г., стр. 37.