Библиотека          оригинал - http://www.pcweek.ru/?ID=60308

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

Алексей Жданов

 

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

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

Несмотря на то, что Windows NT создавалась как сетевая операционная система, сочетание слов “Windows NT” и “реальное время” многими воспринимается как нонсенс, хотя при создании в нее были заложены некоторые элементы реального времени, а именно — двухуровневая система обработки прерываний (ISR и DPC) и классы реального времени (процессы с приоритетами 16—32 планируются в соответствии с правилами реального времени). Видимо, объяснить это можно тем, что у разработчиков Windows NT за плечами есть опыт создания классической для своего времени ОСРВ RSX11М (для компьютеров фирмы DEC).

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

Разработчики расширений пошли двумя путями.

1. Использовали ядра классических ОСРВ в качестве дополнения к ядру Windows NT (“два в одном флаконе”). Таковы решения фирм LP Elektroniks и Radisys. В первом случае параллельно с Windows NT (на одном компьютере!) работает операционная система VxWorks, во-втором случае — InTime. Кроме того, предоставляется набор функций для связи приложений реального времени и приложений Windows NT. Вот как, скажем, это выглядит у LP Elektroniks. Вначале стандартным образом загружается Windows NT, затем с помощью специального загрузчика — VxWorks, распределяя под свои нужды необходимую память Windows (что в дальнейшем позволяет избежать конфликтов памяти между двумя ОС). После этого полной “хозяйкой” на компьютере уже становится VxWorks — она отдает процессор ядру Windows NT только в тех случаях, когда в нем нет надобности для приложений. Каналами для синхронизации и обмена данными между Windows NT и VxWorks служат драйверы TCP/IP в обеих системах. Технология использования двух систем на одном компьютере понятна: работу с объектом выполняет приложение реального времени, передавая затем результаты приложениям Windows NT для обработки, передачи в сеть, архивирования и пр.

2. Вариант расширений реального времени фирмы VenturCom выглядит иначе: здесь сделана попытка “интегрировать” реальное время в Windows NT путем исследования причин задержек и зависаний и их устранения с помощью подсистемы реального времени. Решения фирмы VenturCom (RTX 4.2) базируются на модификациях уровня аппаратных абстракций Windows NT (HAL, Hardware Abstraction Layer) — программного слоя, через который драйверы взаимодействуют с аппаратурой. Модифицированый HAL и дополнительные функции (RTAPI) отвечают за стабильность и надежность системы, обеспечивая отслеживание краха Windows NT, зависания приложений или блокировку прерываний. В состав RTX входит также подсистема реального времени RTSS, расширяющая Windows NT дополнительным набором объектов (аналогичным стандартным, но с атрибутами реального времени). Среди новых объектов — потоки и процессы, управляемые специальным планировщиком реального времени (256 фиксированных приоритетов, алгоритм — приоритетный с вытеснением). Побочной возможностью RTX является простое создание программ управления устройствами, так как среди функций RTAPI есть и функции работы с портами ввода-вывода и физической памятью. Решения VenturCom характерны еще и тем, что они предоставляют совершенно экзотическую для NT возможность конфигурирования Windows NT и создания встроенных конфигураций (без дисков, клавиатуры и монитора).

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

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

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

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

Один из видимых процессов — сближение систем различных классов. Так, во многих ОСРВ с ядром реального времени и UNIX реального времени (UNIX РВ) появились в последнее время кроссовые системы разработки высокого качества, характерные для ОСРВ класса “исполнительные системы реального времени”. И это — общая тенденция. Резидентные средства разработки для ОСРВ, поддерживающих многие целевые архитектуры, уже выглядят как архаизм. Например, мощные кроссовые системы разработки появились в таких ОСРВ, как OS9 (с ядром реального времени ) и LynxOS (UNIX реального времени).

Такая же картина наблюдается в области систем исполнения ОСРВ: в продуктах класса “UNIX РВ” и “ядра РВ” появляются новые компактные варианты систем исполнения с малым временем переключения контекста (качество класса “исполнительные ОСРВ”). Примерами могут служить OS9, QNX, LynxOS.

Нельзя не заметить и еще одну тенденцию — появление во многих ОСРВ таких продуктов, как Real-Time Java и Embedded Java. Сейчас Java — один из обязательных атрибутов систем реального времени.

Интересно, что в последнее время в ряде ОСРВ (QNX, LynxOS) появились дополнительные библиотеки, реализующие подмножества программного интерфейса Win32. Аналогичные процессы происходили не так давно в отношении стандарта POSIX 1003.1 (базовый программный интерфейс UNIX). В итоге многие ОСРВ стали POSIX-совместимыми. Видимо, в недалеком будущем они станут еще и Win32-совместимыми.

Говоря о тенденциях развития ОСРВ, нельзя обойти вниманием вопрос, о котором сейчас много говорят и пишут. Я имею в виду проблему операционной системы Windows CE, ее позиционирования по отношению к ОСРВ.

Версии Windows CE, появившиеся к настоящему моменту (2.0 и 2.1), никак не назовешь системами реального времени. Здесь можно говорить скорее о поиске, в котором находятся специалисты Microsoft, чем о какой-то магистральной линии развития. Так, программные интерфейсы для драйверов 2.1 и 2.0 несовместимы друг с другом, причем в версии 2.1 появились существенные недостатки, обуславливающие большие задержки при операциях ввода-вывода. Появление версии 3.0, о которой уже известно, что она будет существенно отличаться от предыдущих, прояснит ситуацию и позволит понять, как будет развиваться Windows CE дальше. Несомненно одно: Microsoft открыла проект CE c целью выйти на рынок встроенных систем и, наверное, достигнет многого на этом поприще. Однако встроенные системы и системы реального времени — не одно и то же. Различные интеллектуальные калькуляторы, электронные записные книжки, переводчики, органайзеры и другие инструменты составляют огромный рынок сбыта — именно туда направлены интересы Microsoft и требования именно этого рынка будут определять технические решения в области СЕ, а никак не требования жесткого реального времени. Создать же универсальную систему, удовлетворяющую противоречивым требованиям, невозможно. Поэтому маловероятно, что Windows CE составит серьезную конкуренцию системам, о которых говорилось в этой статье.