Классы систем реального времени

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

Среди коммерческих систем реального времени выделяется группа ведущих систем —: VxWorks, OS9, pSOS, LynxOS, QNX, VRTX.

Все ОС РВ можно поделить на следующие классы:

1. Исполнительные системы реального времени

2. Ядра реального времени

3. UNIX'ы реального времени

4. Расширения реального времени для WindowsNT

Рассмотрим особенности ОС РВ каждого из классов.

Исполнительные системы реального времени

Исполнительные системы реального времени построены по принципам монолитной операционной системы. Они реализуют набор API -функций и поддерживают приоритетную вытесняющую многозадачность в комбинации с карусельной многозадачностью. Как правило, приложение реального времени — это одна задача, и параллелизм здесь достигается с помощью нитей.

Главное достоинство систем этого типа скорость и реактивность, которая достигается благодаря монолитности операционной системы и наличии только нитей (потоков) и, следовательно, маленькому времени переключения контекста между ними (в отличие от процессов).

С этим главным достоинством связан и ряд недостатков: «зависание» всей системы при «зависании» нити, проблемы с динамической подгрузкой новых приложений.

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

Представитель этого класса – VxWorks.

Область применения — компактные системы реального времени с хорошими временами реакций.

Ядра реального времени

В этот класс входят системы с микроядром, в котором содержится реализация всех механизмов реального времени этих операционных систем.

Исторически системы этого типа были хорошо спроектированы. В отличие от систем других классов, которые появлялись как временные компромиссы и затем «наращивали мускулы» благодаря первым удачным реализациям (исполнительные системы реального времени и UNIX'ы реального времени), разработчики систем этого класса имели время для разработки систем именно реального вре­мени и не были изначально ограничены в выборе средств (например, фирма Microware имела в своем распоряжении три года для разработки первого варианта OS9).

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

Одна из особенностей систем этого класса — высокая степень масштабируемости.

Как правило, они имеют два типа систем разработки — кроссовую и резидентную.

Наиболее популярные системы этого класса: OS9, QNX.

UNIX'ы реального времени

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

Реализация этой идеи не была слишком сложной, поскольку не было препятствия в доступе к исходным текстам ядра, а результат оказался замечательным. Получили и реальное время, и сразу весь набор пользовательских приложений — компиляторы, пакеты, различные инструментальные системы.

В этом смысле создателям систем первых двух классов пришлось потрудиться не только при создании ядра реального времени, но и продвинутых систем разработки.

Недостатком Unix'ов реального времени является то, что системы реального времени получаются достаточно большими и реактивность их ниже, чем реактивность систем первых двух классов.

Наиболее популярным представителем систем этого класса является операционная система реального времени Lynx OS.

Расширения реального времени для WindowsNT

Операционная система WindowsNT разрабатывалась как система общего назначения. В то же время существует тенденция использования операционных систем Microsoft Windows по следующим причинам:

- прикладной программный интерфейс (API) Win32 является для многих программистов стандартом де-факто;

- популярный графический интерфейс пользователя;

- разработано большое количество драйверов различных производителей;

- разработано множество очень мощных инструментальных пакетов.

Возможность использования WindowsNT как ОС РВ определяется, прежде всего, реализации в нем многопоточности и наличие приоритетности потоков.

Ограниченные возможности использования WindowsNT как ОС РВ обусловлены:

1.Отсутствием в WindowsNT механизма наследования приоритетов.

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

3. Обслуживание прерываний в WindowsNT основано на концепции отложенных вызовов процедур которые находятся на одном уровне приоритета (приоритет этих вызовов выше, чем приоритет пользовательских и системных потоков). В результате все вызовы выстраиваются в FIFO-очередь и прерывание высокого уровня будет обслужено только тогда, когда свое исполнение завершат все предшествующие ему вызовы. Вследствие этого время отклика системы становится непредсказуемым, что противоречит одному из основных требований к ОС РВ.

4. В основе управления памятью в WindowsNT лежит механизм виртуальной памяти, который предусматривает преобразование адресов и подкачку (свопинг).

Вывод – WindowsNT непосредственно не подходит для применения в приложениях реального времени.

Тем не менее, в последние два года сразу несколько фирм объявили о создании расширений реального времени для Windows NT. Этот означает, что подобные продукты были востребованы, что и подтверждает динамика их рыночного развития. В самом деле, появление в свое время UNIX'oв реального времени означало ни что иное, как попытку применить господствующую программную технологию для создания приложений реального времени. Появление расширений реального времени для Windows NT имеет те же корни, ту же мотивацию — огромный набор прикладных программ под Windows, мощный программный интерфейс WIN32, большое количество специалистов, знающих эту систему. Конечно, соблазнительно получить в системе реального времени все эти возможности.

Несмотря на то, что Windows NT создавалась как сетевая операционная система, в нее при создании были заложены элементы реального времени, в частности, процессы и потоки, приоритеты, диспечеризация. Возможно, причина появления этих элементов кроется в том, что у разработчиков Windows NT за плечами есть опыт создания классической для свое­го времени ОСРВ RSX11M (для компьютеров фирмы DEC).

Тем не менее, повторимся, что эта система не годится для построения систем жесткого реального времени (система непредсказуема - время выполнения системных вызовов и время реакции на прерывания сильно зависит от загрузки системы; система велика; нет механизмов защиты от «зависаний» и пр. и пр.). Поэтому даже в системах мягкого реального времени Windows NT можно использовать только при выполнении целого ряда рекомендаций и ограничений.

Основные решения по использованию Windows NT как ОСРВ:

1.Использование ядра классических ОСРВ в качестве дополнения к ядру Windows NT.

При использовании двух операционных систем на одном компьютере работу с объектом выполняет приложение реального времени, передавая затем результаты приложениям Windows NT для обработки, передачи в сеть, архивирования и т. п.

Вначале стандартным образом загружается Windows NT, затем с помощью специального загрузчика загружается операционная система реального времени, распределяя под себя необходимую память Windows (что в дальнейшем позволяет избежать конфликтов памяти между двумя ОС). После этого ОС РВ становится ведущей, отдавая процессор ядру Windows NT только в случаях, когда это позволяют приложения ОС РВ. В качестве канала для синхронизации и обмена данными между Windows NT и ОС РВ служат псевдодрайверы TCP/IP в обеих системах. Обмен данными производится через разделяемую память.

2. Интегрирование ядра реального времени в программный слой ОС Windows NT, через который драйверы взаимодействуют с аппаратурой.

К этому классу относится многозадачное ядро реального времени RTX 4.2.

В состав RTX входит подсистема реального времени, с помощью которой Windows NT расширяется дополнительным набором объектов. Среди них — нити реального времени, которые управляются специальным планировщиком реального времени. Набор прикладных интерфейсов программирования RTX 4.2 позволяет:

  • Осуществлять полный контроль над задачами реального времени;
  • Использовать фиксированную систему из 256 приоритетов для контроля RTX задач;
  • Применять стандартные для ОС РВ средства обмена данными между задачами;
  • Обращаться к стандартным API -функциям Win32.

Задачи RTX является обычными Paskal-процедурами или Си-функциями. При старте программы на исполнение ставится только одна функция main, из которой с помощью функций RTX (RTKCreateTask) запускаются функции (программы), которые должны исполнятся одновременно, как задачи ядра реального времени.

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

- Windows NT – 44%;

- Windows NT/ RTX – 17%;

- Java – 15%;

- QNX – 13%;

- Windows NT/ Прочие – 9%;

- Другие – 2%.

Тенденции развития ОСРВ

Общей тенденцией является сближение ОСРВ различных классов.

1. В новые ОСРВ класса «ядра реального времени» и UNIXах реального времени включены кроссовые системы разработки высокого качества.

В системах исполнения ОСРВ, имеют новые компактные варианты с маленьким временем переключения.

2. Общей тенденцией для ОС РВ является то, что они становятся POSIX-совместимые, т.е. POSIX, 1003.1 (базовый программный интерфейс UNIXa) – становится стандартом ОС РВ.

3. В последнее время в ряде ОСРВ (QNX, LynxOS) появились дополнительные библиотеки, реализующие подмножества программного интерфейса WIN32 и прогнозируется в будущем WIN 32-совместимость многие ОСРВ.

POSIX-совместимость

POSIX (Portable Operation Systems Interface) — это развивающийся стандарт, призванный обеспечить переносимость исходных текстов программ между ОС разных производителей. За основу стандартов POSIX были взяты ОС семейства UNIX.

Разработкой стандартов POSIX занимаются рабочие группы американского Института инженеров по электротехнике и радиоэлектронике - - ИИЭР (Institute of Electrical and Electronics Engineers -- IEEE). Поэтому стандарты POSIX после утверждения имеют маркировку IEEE. Кроме того, существуют Международная организация по стандартизации (International Organization for Standardization – ISO) и Международная электротехни­ческая комиссия – МЭК (International Electrotechnical Commission — IEC). Эти организации могут утверждать стандарты IEEE в качестве международных.

POSIX – стандарт ISO/IEC 9945-1 определяет интерфейс прикладного программирования (API) для операционных систем. И включает следующие стандарты:

o POSIX. I (IEEE 1003.1) – базовый API операционных систем;

o POSIX.la (IEEE 1003.la) – некоторые расширения API;

o POSIX.4 (IEEE 1003.lb) – определяет расширения для поддержки реального времени;

o POSIX.4a (IEEE 1003.1с) – определяет интерфейсы потоков, выполняющихся внутри POSIX-процессов;

o POSIX. lb (IEEE 1003. 1d) – дополнительные расширения реального времени;

Стандарт ISO/IEC 9945-2 (POSIX.2 или IEEE 1003.2) определяет набор утилит и командных интерпретаторов.

В документации часто используется комбинированное обозначение номеров стандартов, например вместо POSIX.4a или IEEE 1003.1с пишут POSIX 1003.1с.

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

Варианты использования POSIX-стандарта для систем реального времени называются профилями прикладных контекстов реального времени. Они регламентируются стандартом ISO/IEC ISP 15287-2 (POSIX.13 или IEEE 1003.13), который определяет следующие профили.

o Минимальная система — встроенная система без поддержки механизма управления памятью (MMU), без файловой системы и терминала. В такой системе разрешается только один многопоточный процесс.

o Контроллер реального времени — это минимальная система, дополненная файловой системой и терминалом ввода/вывода.

o Специализированная система — большая встроенная система, в которой может выполняться несколько многопоточных процессов. Файловая система отсутствует.

o Многоцелевая система – операционная система реального времени, обеспечивающая поддержку всей предусмотренной POSIX функциональности.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: