Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лек СРВ от Анн.doc
Скачиваний:
11
Добавлен:
09.11.2019
Размер:
2.26 Mб
Скачать

3. Модификация уровня аппаратных абстракций Windows nt (hal)

Попытки соединить новую мощную технологию с требованиями реального времени развивались по двум направлениям:

  1. "втащить" новую OC на уровень контроллеров (клоны UNIX реального времени),

  2. реализовать в системах нижнего уровня стандартные коммуникационные интерфейсы к системе верхнего уровня (TCP/IP, RPC).

Тот же процесс мы наблюдаем и сейчас: стандарт OPC и расширения реального времени для NT развиваются параллельно.

Решения, основанные на данном подходе, были предложены фирмой VenturCom. Структура расширений Windows NT этого типа приведена на рис. 2.

Рис. 2. Структура расширений Windows NT VenturCom

Так как аппаратные прерывания попадают вначале в HAL и только затем передаются ядру, логично использовать прерывания от таймера для создания на базе модификаций HAL дополнительного диспетчера, а именно диспетчера нитей реального времени. Прерывания же, "не интересные" диспетчеру, можно передавать по прежней цепочке в ядро Windows NT. Таким образом появляется шанс выстроить достаточно развитую систему поддержки приложений реального времени. В итоге получаются два набора приложений: стандартные приложения NT и приложения реального времени, управляемые HAL-диспетчером. Причем стандартные приложения "не подозревают" о приложениях реального времени. И если на этом остановиться, то получится просто два класса задач, которые исполняются на одном процессоре, но никак не связаны между собой. В частности, приложения реального времени не будут иметь доступа к набору сервисов Windows NT (графический интерфейс, сети и т.д.). Поэтому разработчики, выбравшие такой вариант реализации, должны сами обеспечить интерфейс между приложениями реального времени и стандартными приложениями NT. Специалисты VenturCom предлагали решить эту проблему на двух уровнях. С одной стороны, существует механизм взаимодействия приложений реального времени с приложениями NT через разделяемую память (на рис. 2 этот механизм показан стрелкой IPC - Inter Process Communication), а с другой стороны, специфический драйвер NT позволяет стандартным приложеням "увидеть" подсистему реального времени как устройство (на рис. 2 этот механизм показан стрелкой DD_Com - Device Driver Communication).

4. Применение ос рв

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

Ядра реального времени. В этот класс входят системы с монолитным ядром, где и содержится реализация всех механизмов реального времени. Исторически системы данного типа были хорошо спроектированы. Разработчики этих систем - в отличие от создателей систем других классов, которые появлялись как временные компромиссы и затем "наращивали мускулы" благодаря первым удачным реализациям (исполнительные системы реального времени и UNIX реального времени) - имели время для разработки систем именно реального времени и не были изначально ограничены в выборе средств (например, фирма Microware для подготовки к выпуску первого варианта OS-9 имела в своем распоряжении три года). Системы этого класса, как правило, модульны, хорошо структурированы, имеют развитый набор специфических механизмов реального времени, компактны и предсказуемы. Самые популярные системы: OS-9, QNX. Одна из особенностей продуктов этого класса - высокая степень масштабируемости. На их базе можно построить как компактные системы реального времени, так и большие системы серверного класса. Как правило, их ядра реального времени имеют два типа систем разработки - кроссовую и резидентную.

Клоны UNIX реального времени. Исторически системы реального времени создавались в эпоху расцвета ОС UNIX, поэтому многие из них содержат те или иные заимствования из этой красивой концепции операционный системы (пользовательский интерфейс, концепция процессов и т.д.). Часть разработчиков ОС РВ попыталась просто переписать ядро UNIX, сохранив при этом интерфейс пользовательских процессов с системой, насколько это было возможно. Реализация идеи не вызвала затруднений, поскольку не было препятствий в доступе к исходным текстам ядра, а результат оказался замечательным. Получили и реальное время, и сразу весь набор пользовательских приложений - компиляторы, пакеты, различные инструментальные системы. В этом смысле разработчикам систем первых двух классов пришлось потрудиться при создании не только ядра реального времени, но и продвинутых систем разработки. Однако семейство Unix реального времени не лишено недостатков: системы реального времени получаются достаточно большими и менее реактивными, чем системы первых двух классов. Наибольшим спросом пользуется операционная система реального времени Lynx OS.

Расширения реального времени для NT. Итак, стоит ли беспокоиться производителям традиционных операционных систем реального времени в связи с появлением на рынке расширений реального времени для Windows NT?

Чтобы ответить на этот вопрос, недостаточно одного анализа тенденций развития операционных систем реального времени и программных технологий. Необходим и анализ тенденций новых аппаратных технологий на рынке промышленной автоматизации. И не случайно производители расширений Windows NT реального времени строят модели развития рынка промышленной автоматизации, из которых следует, что все промышленные контроллеры двадцать первого века будут содержать процессоры Intel [2]. Конечно же, это весьма маловероятно (в первую очередь, из-за того, что связка Wintel не спозиционирована в целом на рынок систем реального времени), и в этом смысле более объективным представляется анализ специалистов, для которых ОС РВ - только один из компонентов построения аппаратно-программных комплексов [3]. Однако нельзя забывать и о том, что мощность современных встраиваемых Intel-контроллеров, скажем на платформе VME или CompactPCI, постоянно растет, а цена снижается, что уже позволяет применять Windows NT.

С другой стороны, появление новых программных технологий, таких, как OPC (OLE-For Рrocess Control), говорит о тенденциях разделения функций системы реального времени по уровням. Возможно, развитие этого стандарта и создание широкого набора клиентов и серверов освободит нас от желания "втаскивать" Windows NT на уровень промышленных контроллеров. К тому же промышленные контроллеры сегодня - далеко не самый большой рынок для ОС РВ. Значительно более емкий рынок для них - домашние приставки интерактивного телевидения, сотовые телефоны нового поколения и т.п. Словом, как всегда, рынок полон противоречивых тенденций. И, тем не менее, можно предсказать довольно точно, какую нишу на рынке ОС РВ займут расширения реального времени для NT.

Системы первых двух классов с появлением на рынке Windows NT не испытают никакого давления, поскольку область их применения - компактные, встроенные приложения жесткого реального времени на контроллерах различной архитектуры (среди которых и Intel). Представляется маловероятным сколько-нибудь широкая замена этих систем на Windows NT. На это есть несколько причин:

  1. небольшое количество архитектур, поддержанных Windows NT

  2. невозможность построения компактной системы (контроллер должен содержать электронный диск во Flash-памяти объемом не менее 10 Мбайт и оперативную память не менее 16 Мбайт)

  3. в приложениях жесткого реального времени может использоваться только один комплект расширений - дополнительное ядро реального времени.

  4. бедный набор механизмов межзадачной коммуникации.

Иначе обстоят дела с большими системами реального времени. Традиционно эту нишу занимали клоны UNIX реального времени и масштабируемые системы первых двух классов. Эти системы обычно используются, когда нет жестких требований к реальному времени, или когда система содержит только отдельные критические участки. Часто UNIX реального времени применяется в тех приложениях, где система требует развитых сетевых возможностей или возможностей архивирования данных. В этом смысле истории появления клонов UNIX реального времени и расширений реального времени для Windows NT удивительно похожи. Основная идея создания UNIX РВ заключалась в том, чтобы перенести на уровень управляющих систем наиболее мощную на тот момент программную технологию - с развитым программным интерфейсом (POSIX), изобилием разнообразных приложений и большим количеством квалифицированных специалистов. Все это слово в слово можно повторить о нынешней ситуации, заменив UNIX на NT, а POSIX на WIN32 API. В системе UNIX, так же как и в NT, изначально заложены элементы реального времени, что послужило дополнительным импульсом для их внедрения в мир реального времени.

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

Расширения реального времени Windows NT имеют те же слабые стороны, что и UNIX РВ: невозможность построения компактных систем и множество недостатков при работе в реальном времени.

Сходство истории и проблем, а также технические аналогии позволяют с высокой степенью вероятности предположить, что на рынке ОС РВ расширения Winows NT будут бороться за нишу, которую уже занимают сейчас UNIX РВ - нишу больших систем с ограниченными требованиями к реальному времени.