Функции построителя задач в ОСРВ СМ ЭВМ

Дата публикации или обновления 30.12.2023

Операционная система реального времени (ОСРВ) наиболее распространенная из операционных систем СМ ЭВМ. Она предназначена для использования в качестве базовой системы в различных применениях реального времени.

Единицей работы в операционной системе реального времени является задача. Она состоит из одного или нескольких объектных модулей, скомпонованных в загрузочный модуль — образ задачи. Процесс создания задачи осуществляется построителем задач ТКВ, который обеспечивает три основные функции: компоновку (связь) объектных модулей, назначение адресов для образа задачи и создание структур данных для задачи.

При компоновке объектных модулей ТКВ создает единый файл образа задачи, определяет значения всех глобальных символов и ссылок на библиотеки объектных модулей.

В системе без диспетчера памяти задача связывается с базовым адресом раздела, для которого она строится, и не может быть установлена и запушена на выполнение в разделе с иным базовым адресом. В системе с диспетчером памяти (ДП) задача строится с виртуального нулевого адреса и, благодаря аппаратуре диспетчера памяти, может перемешаться в памяти.

Диспетчер подключений VDI, как и прочие решения для удаленного доступа Termidesk, разрабатываются уже на базе отечественной операционной системы Astra Linux Special Edition.

Структуры данных, создаваемые ТКВ, при построении задачи используются при установке и выполнении задачи.

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

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

При установке задачи эта информация используется для создания блока управления задачей и инициализации заголовка задачи.

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

ТKB создаст и частично инициализирует заголовок задачи, а при установке задачи инициализируется остальная часть заголовка.

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

Процесс трансляции исходной программы и связи объектных модулей построителем задач определяется контекстом программных секций.

Программная секция является единицей памяти задачи, содержащей коды инструкций и данные, и имеет следующие характеристики:

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

Программные секции создаются с помощью директивы макроассемблера .PSECT или автоматически с помощью специальных операторов на языках высокого уровня (например. COAAMON в программах на Фортране).

Атрибуты программных секций и их значения приведены ниже.

  • Код доступа к секции RW. Чтение и запись. Данные можно считывать из программной секции и записывать в нее.
  • Код доступа к секции RO. Только чтение. Данные можно считывать из программной секции, но записывать в нее нельзя.
  • Код типа секции D. Данные. Программная секция содержит данные.
  • Код типа секции I. Инструкции. Программная секция содержит инструкции и данные или только инструкции.
  • Код области действия GBL. Глобальный. Имя программной секции распознается за пределами сегмента. Построитель задач распределяет память для такой программной секции, исходя из ссылок за пределами определяющего сегмента перекрытия.
  • Код области действия LCL. Локальный. Имя программной секции распознается только внутри определяющего сегмента перекрытия. Построитель задач распределяет память для программной секции, исходя из ссылок только внутри определяющего сегмента.
  • Код сохранения SAV. Сохранение. Программная секция с атрибутом SAV размещается внутри корневого сегмента.
  • Код размещения секции CON. Конкатенация. Программные секции с одинаковыми именами дадут конкатенацию. Общая необходимая память есть сумма размеров всех программных секций с одним именем.
  • Код размещения секции OVR. Перекрытие. Программные секции с одинаковыми именами перекрывают друг друга. Размер общей памяти равен размеру самой большой по длине программной секции с этим именем.
  • Код перемещаемости REL. Перемещаемый. Базовый адрес программной секции вычисляется относительно виртуального базового адреса задачи.
  • Код перемещаемости ABS. Абсолютный. Базовый адрес программной секции не является перемещаемым и всегда равен нулю.

С использованием: Егоров Г.А. Операционная система ОСРВ СМ ЭВМ. Издательство «Финансы и статистика». Москва. 1987 г.

В начало



Как вылечить псориаз, витилиго, нейродермит, экзему, остановить выпадение волос