Почему так?
Причины ажиотажа вокруг NT реального времени
Как соединить возможности NT с требованиями реального времени?
Устройство расширения реального времени для NT
Модификации уровня аппаратных абстракций
Первые оценки
Ниша расширений реального времени для NT на рынке ОС РВ
Выводы
Литература

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

Итак, на рынке операционных систем реального времени появились новые продукты. Несколько фирм предложили расширения реального времени для Windows NT. Казалось бы, что из этого? Операционных систем реального времени (или с претензиями название таковых) уже более пяти десятков, и появление новых продуктов даже со свойствами суперреактивности, суперкомпактности, суперобъектности и прочими "супер" способно вызвать уже, в лучшем случае, недоверчивое любопытство профессионалов.

Почему так?

Во-первых, рынок ОС РВ сегодня стабилизировался и достаточно жестко поделен на отраслевые и региональные секторы - до 80 % продаж приходится на 5-6 систем-лидеров. По разным исследованиям, если их проинтегрировать, "золотая пятерка мира" в порядке убывания выглядит следующим образом: pSOS+, VxWorks, VRTX, OS9, LynxOS.

Во-вторых, сложился достаточно консервативный и точный набор требований к системам реального времени. Это многозадачность и многонитиевость; планировщик с вытеснением по приоритетам; "прошиваемость" и компактность системы; ввод-вывод, ориентированный на прерывания; развитый набор межзадачных коммуникаций; вычисляемое время задержек прерывания и системных вызовов. Многие существующие системы этим требованиям удовлетворяют. Известны накладные расходы тех или иных решений, и специалисты давно поняли, что чудо-система, превосходящая все остальные, никогда не появится (а как хотелось бы увидеть одну простую систему, управляемую критическими событиями! Жаль, что это невозможно).

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

Причины ажиотажа вокруг NT реального времени

Повышенный интерес к использованию NT в системах реального времени налицо. Растет количество публикаций, например, один из последних номеров журнала "Real Time Magazin" почти полностью посвящен этой теме. Можно предсказать большой интерес и в России, где уровень использования процессоров Intel в системах автоматизации выше, чем в остальном мире - этот крен возник во второй половине 80-х, когда отсутствие средств вынуждало строить управляющие системы на базе офисных IBM PC. Ясно, что ажиотаж вызван прежде всего тем, что новые расширения РВ для NT машинально связываются с компанией Microsoft (хотя это не так!), с ее умением подчинить себе рынок.

Однако появление NT реального времени интересно и с технической точки зрения - соединение возможностей этой ОС с требованиями, предъявляемыми к системам реального времени, открыло бы новые возможности для системных интеграторов. Система NT реального времени и в самом деле могла бы стать сенсацией на рынке.

Какие картины рисует себе пользователь, услышав что NT можно применять в системах жесткого реального времени? Естественно, полагает, что теперь он сможет:

  • использовать одну и ту же ОС на всех уровнях промышленной иерархии;
  • задействовать для создания приложений реального времени программный интерфейс Win32;
  • применять в системах реального времени большое количество стандартных приложений, созданных для NT и, что особенно заманчиво, ее сетевые возможности.

Какую же из этих "сказок" можно "сделать былью", если воспользоваться расширениями реального времени для Windows NT? Ответ будет дан позже, а сейчас попробуем понять, какие способы соединения возможностей NT с требованиями реального времени существуют в принципе.

Как соединить возможности NT с требованиями реального времени?

Есть разные способы решения этой задачи. Некоторые из них давно применяются, некоторые были использованы как раз при разработке расширений реального времени для Windows NT, а кое-какие вряд ли осуществимы.

Теоретически возможны следующие подходы.

  • Использование NT на верхнем уровне систем автоматизации.
  • Использование этой ОС только в системах мягкого реального времени.
  • Применение различных "трюков" для создания приложений жесткого реального времени в NT.
  • Перенесение API-интерфейса Win32 в операционную систему реального времени.
  • Модификации ядра Windows NT.
  • Модификации уровня аппаратных абстракций (HAL).
  • Дополнение стандартного ядра NT ядром реального времени.

Использование Windows NT на "верхнем" уровне систем автоматизации. Этот метод широко распространен и часто применяется, более того - он лежит в основе одной из типовых конфигураций современных комплексов реального времени. Суть его в том, чтобы разнести функции HMI/SCADA и функции реального времени по разным уровням иерархии системы. Контроллеры нижнего уровня, работающие с объектным вводом/выводом и оснащенные ОС РВ, передают данные для отображения и т.д. на компьютеры c NT, расположенные на более высоком уровне. В этом случае непосредственно к NT требования реального времени, как правило, не предъявляются, поскольку это прерогатива нижнего уровня.

Сейчас существует достаточно много локальных продуктов для коммуникаций между уровнями (DDE-серверы для некоторых ОСРВ, сетевые протоколы), но, как правило, эти решения носят частный характер. Ситуация существенно изменится в недалеком будущем, с развитием стандарта OPC (OLE for Process Control), когда пользователи ОС РВ нижнего уровня получат стандартный выход в мир офисных технологий.

Использование NT в системах мягкого реального времени. Windows NT содержит в себе элементы реального времени, в частности, классы приоритетов реального времени и эффективную систему обработки прерываний. Учитывая эти особенности и ограниченно используя некоторые средства (например GUI), можно применять эту ОС для построения приложений мягкого реального времени. Более подробно об использовании стандартной Windows NT в системах реального времени можно прочитать в [1].

Применение различных "трюков" для разарботки приложений жесткого реального времени. В принципе можно попытаться создать полностью предсказуемое приложение в стандартной chtlt NT, обратив особое внимание на процедуры загрузки и "закрытия" системы и на взаимодействие с другими процессами. Можно, например, написать приложение, основная часть которого исполняется в режиме ядра NT. В этом случае большая часть кода этого приложения должна лежать внутри драйвера. Можно использовать и другие хитрости, стараясь свести к минимуму вероятность возникновения непредсказуемых ситуаций. Но для этого необходим программист высочайшей квалификации, хорошо знающий Windows NT и способный "вычислить" все потенциальные опасности. Естественно, что при создании такого приложения он сможет использовать лишь очень ограниченный набор возможностей NT. Кроме того, подобные приложения чрезвычайно трудно сопровождать и модифицировать.

Перенесение API-интерфейса Win32 в операционную систему реального времени. Этот подход понятен и реализуем. Он уже осуществлен в некоторых операционных системах реального времени. В частности, в VxWorks. Преимущество этого подхода в том, что API-интерфейс WIN32 опирается в данном случае на полностью предсказуемое и надежное ядро ОС РВ. Но при этом пользователь системы получает только одну из возможностей Windows NT, а именно дополнительный программный интефейс. И, конечно, в этом случае не может быть и речи об использовании стандартных приложений Windows NT в ОС РВ.

Модификации ядра. Только этот подход способен превратить Windows NT в настоящую операционную систему реального времени с сохранением большинства ее возможностей. Однако исходные тексты ядра Windows NT принципиально недоступны для третьих фирм - это одно из положений политики Microsoft. Поэтому соответствующие модификациии могут исходить только от самой компании, что в ближайшее время маловероятно, учитывая ее ориентацию на рынок программного обеспечения общего назначения. Судите сами: обьем офисного/домашнего рынка компьютеров более 200 млрд. долл., а "промышленного" - менее 5 млрд.

Модификации уровня аппаратных абстракций Windows NT (HAL) и дополнение стандартного ядра NT ядром реального времени. Эти подходы использовались для создания расширений реального времени Windows NT, поэтому остановимся на них подробнее в следующей главе.

Из всех перечисленных подходов к соединению возможностей NT и требований реального времени только первый и последний действительно интересны. Все остальные либо неосуществимы, либо очень ограничены в использовании. Так было всегда. Вспомним UNIX (никому не советовал бы его забывать!). Попытки соединить новую мощную технологию с требованиями реального времени развивались по двум направлениям:

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

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

Устройство расширения реального времени для NT

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

Но что здесь можно изменить? Реально ли усовершенствовать Windows NT без потери тех возможностей, которые она предоставляет? Попытаемся ответить на эти вопросы. Однако заметим прежде - все предлагаемые решения являются самостоятельными продуктами и никак не связаны с Microsoft. Какие же лазейки нашли создатели расширений реального времени для NT, если учесть, что исходные тексты ядра Windows NT недоступны?

На рис.1 приведена упрощенная структура Windows NT.

Picture 1.

Рисунок 1.
Упрощенная архитектура NT

Уровень аппаратных абстракций (HAL - Hardware Abstraction Layer) - нижний уровень программного обеспечения, "скрывающий" от исполнительной системы NT аппаратно-зависимые детали, такие как контроллеры ввода-вывода и контроллер прерываний. Первый вход в обслуживание прерываний происходит именно на HAL-уровне. Исходные тексты HAL можно получить, подписав специальное соглашение с Microsoft.

Ядро Windows NT и драйверы. Единственной модифицируемой частью ядра являются драйверы устройств.

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

Модификации уровня аппаратных абстракций

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

Дополнение стандартного ядра NT ядром реального времени. Этот подход лежит в основе предложений фирм Radisys, Imagination и LP Elektronik. Имеются две принципиально разные его реализации:

  • разместить ядро реального времени внутри программы обслуживания прерываний Windows NT или в драйвере устройства;
  • разместить ядро реального времени вне адресного пространства Windows NT.

Picture 2.

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

Реализация первой идеи была предложена компанией LP Elektronik. Суть ее в том, что на шину ISA ставится дополнительная плата (LP-Realtime Accelerator), снабженная таймером и имеющая возможность управлять большинством линий прерываний ISA. Кроме того, LP Elektronik предлагает технологию написания программ обработки прерываний (ISR) от этой платы. Эта технология позволяет, в частности, "раздуть" программу обработки прерываний до размеров полноценного ядра операционной системы реального времени.

Строго говоря, LP Elektronik не предлагает собственных расширений реального времени для Windows NT, однако на базе ее технологии в NT было внедрено ядро операционной системы реального времени VxWorks. Способ взаимодействия между процессами VxWorks и Windows был найден остроумный и легко реализуемый: между NT и VxWorks построена "псевдо-сеть" ТСР/IP. Для этого пришлось разработать всего лишь два драйвера TCP/IP - один для Windows, и один для VxWorks.

Фирма Radisys осуществила второй подход, итогом реализации которого стал продукт INtime, основанный на ядре реального времени операционной системы iRMX. Понятно, что и здесь не обошлось без модификации уровня HAL и разработки специфического драйвера. Этот драйвер, как и в остальных реализациях расширений реального времени, предназначен для взаимодействия между процессами NT и процессами реального времени. Radisys разработала также оригинальный механизм внедрения одной операционной системы в другую. Этот механизм управляет одновременным исполнением и целостностью ядер Windows NT и реального времени, осуществляет защиту памяти и разделяет адресные пространства процессов. Процессы и прерывания реального времени при этом всегда имеют приоритет по сравнению с процессами и прерываниями Windows NT. Структура расширений Windows NT c дополнительными ядрами реального времени приведена на рис. 3.

Picture 3.

Рисунок 3.
Структура расширений NT c дополнительными ядрами реального времени

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

Первые оценки

Даже из краткого обзора способов реализации расширений реального времени для NT видно, что пользователь получает возможность строить приложения жесткого реального времени. Это, конечно, замечательно, но операционных систем реального времени, работающих на платформе Intel, и так уже достаточно много. А вот какие возможности Windows NT останутся при этом доступны процессам реального времени?

Здесь уже прозвучал вопрос, могут ли расширения реального времени предоставить пользователям такие возможности, как:

  1. единая ОС РВ для всех уровней иерархии систем автоматизации
  2. программный интерфейс Win32 API для приложений реального времени
  3. доступ к стандартным приложениям Windows NT.

И, увы, ни на один из этих вопросов нельзя однозначно и без оговорок ответить: "Да".

Единая ОСРВ для всех уровней иерархии систем автоматизации - на первый взгляд, это условие выполнено. Однако, на нижних уровнях, как правило, требуется жесткое реальное время, и, следовательно, будет использоваться только один компонент расширений, а именно, ядро реального времени. Про стандартное ядро и приложения придется забыть - время их исполнения предсказать невозможно. И мы вновь возвращаемся к тому, от чего пытались уйти: на низких уровнях промышленной иерархии используется операционная система реального времени, отличная от Windows NT. И вряд ли принесет облегчение тот факт, что в названии этой операционной системы присутствует намек на NT.

Кроме того, все расширения Windows NT весьма велики по объему. Минимальные требования к размеру Flash-памяти (из которой грузится система) 10-16 Мбайт, что ограничивает использование расширений на компактных контроллерах.

Программный интерфейс Win32 API для приложений реального времени. Ответ на этот вопрос: "Cкорее НЕТ, чем ДА". Во всех реализациях расширений приложения реального времени используют собственый программный интрефейс, который, в лучшем случае, содержит лишь небольшое подмножество интерфейса Win32, поэтому отсутствует взаимная переносимость приложений реального времени и приложений Windows NT. Более того, далеко не все реализации расширений позволяют применять стандартные системы разработки Microsoft!

Справедливости ради нужно сказать, что в расширениях от VenturCom сделана попытка обеспечить переносимость приложений. Для этого были разработаны дополнения и расширения к WIN32 API. Конечно, это не означает, что приложения реального времени получили доступ к Win32 API, но, по крайней мере, у них вышло не пустое пересечение с программным интерфейсом стандартных приложений. Отметим также, что расширения по версии VentuCom используют стандартные системы разработки (Visual C++).

Доступ к стандартным приложениям Windows NT. Да. Эту возможность мы получили. Приложения реального времени и стандартные приложения NT могут исполняться одновременно. Во всех реализациях существуют способы взаимодействия между приложениями этих групп. Однако и здесь не все гладко. Приложения реального времени могут взаимодействовать со стандартными только с помощью специальных коммуникационных механизмов. Это означает, что необходима промежуточная задача для обеспечения передачи данных. Наверное, это не слишком большая проблема, так как разработать такие задачи-мосты для связи с наиболее популярными стандартными приложениями можно.

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

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

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

Ниша расширений реального времени для NT на рынке ОС РВ

На рынке сейчас имеются следующие ОС РВ:

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

Выводы

Итак, первое, на что хотелось бы обратить внимание: Windows NT и расширения Windows NT реального времени - это совершенно разные продукты. По сути, расширения реального времени - это отдельные операционные системы реального времени, исполняющиеся параллельно с Windows NT.

Расширения реального времени для Windows NT не превращают саму Windows NT в систему реального времени, и к этим расширениям следует относиться не как к глобальному решению, которое снимает все проблемы с использованием Windows NT в реальном времени, а как к компромиссу, позволяющему решить многие локальные вопросы. Например:

  • расширения реального времени предоставляют пользователю прямой доступ к аппаратуре компьютера, который получает в свое распоряжение быстрые таймеры и возможность управления прерываниями.
  • решены проблемы работы Windows NT без видеоадаптера и клавиатуры
  • можно избавиться от файла подкачки
  • приложения стандартного Windows NT не смогут приостановить или разрушить задачи реального времени.

Расширения реального времени для Windows NT - новый класс продуктов среди ОС РВ. Его появление - дань моде на NT и попытка "напрямую" перенести эту ОС на уровень контроллеров. Здесь немало компромиссов и нерешенных проблем, но, тем не менее, расширения реального времени для NT займут свою нишу на рынке ОС РВ в классе относительно крупных и высокопроизводительных систем реального времени.


Литература

  1. Е. Хухлаев. Операционные системы реального времени и NT. Открытые Системы, # 5, 1997 с. 48-51
  2. M. Ragosin. "Real Time Magazine" # 2, 1997
  3. А.Рыбаков, Эволюция стандарта PCI для жестких встраиваемых приложений, Открытые Системы, # 5, 1997, с. 52-59