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