logo

2.1.3. Обзор систем реального времени

На сегодняшний день существует более ста коммерческих ОСРВ. Есть множество бесплатных (или условно бесплатных) СРВ и систем, имеющих статус исследовательских или университетских проектов. К сожалению, в России хорошо представлены только несколько коммерческих систем (QNX, OS-9, VxWorks ). QNX на сегодня является самой распространенной ОСРВ в России. К объективным причинам этого можно отнести засилье у нас архитектуры x86 фирмы Intel, к субъективным - наличие нескольких компаний, занимающихся дистрибуцией QNX. Многие популярные в Европе и США ОСРВ до сих пор практически не представлены на российском рынке. Дадим краткое описание некоторых систем реального времени. 

QNX 

Операционная система QNX является разработкой канадской компании QNX Software System Ltd. . Впервые система появилась на рынке в 1981 году. Среди пользователей QNX значатся такие компании, как Du Pont, Eastman Kodak, General Mills, General Motors, Motorola, Texaco. 

Операционная система QNX представляет собой гибрид 16/32-битовой операционной системы, которую пользователь может конфигурировать по своему усмотрению. Время, необходимое для полной инсталляции системы, включая сетевые средства, составляет всего 10-15 минут, после чего можно начинать работу. Нетребовательность системы к ресурсам проявляется уже в том, что система с необходимой и достаточной средой разработки в виде компилятора Watcom C/C (основной компилятор для QNX) умещается в 10 Мбайт. 

Система построена по технологии FLEET [Fault-tolerance (отказоустойчивая), Load-balancing (регулирующая нагрузку), Efficient (эффективная), Extensible (расширяемая), Transparent (прозрачная)]. Эта технология выражается в следующих принципах. QNX является ОСРВ на основе микроядра (размером около 10 Кбайт). В качестве основного средства взаимодействия между процессами система использует передачу сообщений. Благодаря этому в 32-битовой среде возможно взаимодействие процессов с 32 и 16-битовым кодом. Причем сообщения передаются между любыми процессами, не зависимо от того, находятся ли процессы на одном компьютере или на разных узлах сети. Пользователь, работая на одном из узлов сети, может иметь доступ к любым ресурсам остальных узлов, включая порты, файловую систему и задачи. Пользователю нет никакой необходимости вникать в сетевой протокол, который, кстати, не является тайной, вплоть до его структуры. Он содержит пакеты, которые применяются также и для передачи сообщений. Сетевой администратор распознает эти пакеты и переправляет их микроядру, которое, в свою очередь, переправляет их в шину локальных сообщений. QNX способна распознавать не только пакеты сообщений QNX-процессов. Вы можете легко обращаться к сетевому администратору для передачи таких пакетных протоколов, как TCP/IP, SMB и других. Возможно обращение к различным сетевым администраторам через один кабель. Операционная система QNX объединяет всю сеть персональных компьютеров в единый набор ресурсов с абсолютной прозрачностью доступа к ним. Узлы могут добавляться и исключаться из сети, не влияя на целостность системы. Сетевая обработка данных в QNX является настолько гибкой, что вы можете объединить в одну сеть любой разнородный набор Intel совместимых компьютеров соединенных через Arcnet, Ethernet, Token Ring или через последовательный порт, к которому также может быть подключен модем. Причем возможно участие компьютера одновременно в нескольких сетях, и если одна из них окажется перегруженной или выйдет из строя, то QNX автоматически будет использовать другие доступные сети без потери информации. Файловая система QNX полностью соответствует стандарту POSIX. Программист, поработавший в UNIX, не заметит никаких отличий в работе. Хотя внутри файловая система значительно отличается от таковой в UNIX. Эти отличия в основном сказываются на ее живучести, то есть на целостности данных, хранимых на диске, и на производительности. QNX обеспечивает работу с различными типами файловых систем: POSIX, Embedded (FLASH, ROM, SROM), CD-ROM (с поддержкой стандарта ISO 9660 и его расширения Rock Ridge), DOS (доступ ко всем носителям информации в формате DOS), NFS (доступ к различным типам удаленных файловых систем), SMB (прозрачный доступ к Windows 2000 или NT-серверам). 

В настоящее время вряд ли какая-нибудь операционная система сможет посоревноваться с QNX по количеству различных графических интерфейсов. Если ваши желания превышают ваши финансовые возможности, вы можете создавать графические приложения с помощью библиотечных функций, поставляемых вместе с компилятором Watcom C. Если вы хотите иметь совершенный графический интерфейс для ограниченной в ресурсах встраиваемой системы, то Photon - компактный (256К) оконный пакет, поддерживающий стандарт Motif, - это то, что вам нужно. Photon - это принципиально новая оконная графическая система, которая по своему подходу к реализации графического интерфейса коренным образом отличается от всех существовавших ранее систем. Если же ваши программы охватывают широкий спектр графических интерфейсов, значит, ваш выбор падет на X Window System. 

Кроме того, для QNX разработано множество баз данных (db_Vista, Watcom SQL, Faircom C-tree, OnCmd и др.), которые по производительности часто превосходят аналоги под управлением других операционных систем. В Российской промышленности QNX можно встретить чаще чем любую другую ОСРВ. Кроме описанных ранее причин, это объясняется еще и наличием достаточного количества программного обеспечения под QNX (драйверы и т.д.) для различного оборудования, представленного на российском рынке. 

Одним из недостатков QNX является практически отсутствие версий для платформ, отличных от Intel. 

OS-9 

OS-9 относится к классу UNIX подобных операционных систем реального времени и предлагает к использованию многие привычные элементы среды UNIX. Однако оригинальный модульный объектно-ориентированный дизайн системы сейчас также нов, как и тогда, когда он впервые создавался. OS-9 является чрезвычайно гибко конфигурируемой высокопроизводительной системой реального времени. Модульность системы означает, что она может бать масштабирована для удовлетворения нужд как маленьких встроенных систем, так и больших сетевых приложений. Все функциональные компоненты OS-9, включая ядро, иерархические файловые менеджеры, систему ввода/вывода и средства разработки, реализованы в виде независимых модулей. Комбинируя эти модули, разработчик может создавать системы с самой разной конфигурацией - от миниатюрных автономных ПЗУ ориентированных ядер до полномасштабных многопользовательских систем разработки. Как правило, разработка программ ведется в полнофункциональных конфигурациях. После того как будет отлажен код программы реального времени, отсоединяются модули разработки и ввода вывода, и полученный код готов к исполнению под управлением ядра в целевой системе. 

Все модули OS-9 могут быть размещены в ПЗУ. Кроме того, они все позиционно независимые. В результате любые системные и прикладные модули могут добавляться или удаляться из системы в процессе ее функционирования без какой-либо повторной компиляции или компоновки. OS-9 обеспечивает выполнение всех основных функций операционных систем реального времени типа управления задачами, памятью, межзадачного обмена информацией и синхронизации задач. 

Компания Microware стала в 1994 году первым производителем программного обеспечения реального времени, который был сертифицирован по ISO9001. 

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

Модульная структура OS-9 позволяет разработчику выбирать именно те функциональные блоки, которые требуются данному приложению. Любая из опций легко может быть добавлена в систему для обеспечения соответствия изменившимся требованиям к системе. Для поддержки таких сложных приложений, как телекоммуникации, мультимедиа и системы выдачи видеоданных по запросу, фирма Microware разработала ряд дополнительных файловых менеджеров. 

Файловый менеджер управления стеком протоколов поддерживает несколько типов коммуникационных протоколов типа X.25 и LAP-B. Он обеспечивает независимую от сети архитектуру для динамической сборки и разработки (stacking and unstacking) модулей протокола и драйверов устройств. В автономной встроенной системе такие приложения и стеки протокола могут быть как резидентными в устройстве, так и загружаться в устройство через сеть. 

Пользовательский интерфейс мультимедиа-приложения MAUI содержит расширенный набор протоколов API для соответствия требованиям высокопроизводительных мультимедиа-протоколов либо протоколов пользователя. С данным интерфейсом могут общаться такие являющиеся промышленным стандартом пакеты, как Apple QuickDraw и QuickTime, Macromedia Director, Oracle Media Objects и Sybase Gain. 

ISDN-менеджер рассчитан на глобальные телекоммуникационные приложения: видеоконференции, высокоскоростная факс-связь и мосты между локальными и глобальными сетями. ISDN-менеджер позволяет системе OS-9 осуществлять доступ к Базовому каналу ISDN-сети (Basic Rate Channel). 

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

Основные характеристики OS-9: 

- многозадачная (65535 процессов, 65535 уровней приоритета);

- многопользовательская (256 пользователей);

- переносимость приложений (ANSI C/C , POSIX 1003.1, TCP/IP(NFS,RPC), X Windows X11.R6(OSF Motif)), JAVA;

- 100% размещение в ПЗУ системы и приложений пользователя;

- объектно-ориентированный модульный дизайн;

- полностью вытесняемое детерминированное ядро с минимальным временем реакции на прерывание;

- многоуровневая, основанная на приоритетах обработка прерываний;

- развитые сетевые средства (Arcnet, Ethernet, OMNInet, X.25, ISDN T1/E1, ATM NFM, TCP/IP, IPX Profibus, CAN, MIL STD 1553…);

- графические оконные интерфейсы – GUI;

- резидентные и кросс-средства разработки, прогрессивная технология высоко оптимизирующего ANSI C/C компилятора;

- поддержка HOST-систем (IBM PC(MS Windows 3.xx, 95, 98, 2000, NT), IBM RS6000/AIX, Sun4/SunOS/Solaris, HP9000 S/700, SGI IRIS/IRIX);

- широкая поддержка сторонних разработчиков программного обеспечения;

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

- программные продукты для <<вертикальных>> рынков (мобильная беспроводная коммуникация, устройства с минимальным потреблением энергии, мультимедиа);

- специальные программные средства и лицензионная политика для OEM;

- более 5 млн. Установленных копий;

- более 800 OEM-партнеров.

VxWorks/Tornado 

Операционная система реального времени VxWorks и инструментальная среда Tornado фирмы Wind River Systemsпредназначены для разработки ПО встроенных компьютеров, работающих в системах жесткого реального времени. Операционная система VxWorks является системой с кросс-средствами разработки прикладного программного обеспечения, то есть разработка ведется на инструментальном компьютере (host) в среде Tornado для последующего исполнения на целевой машине (target) под управлением VxWorks. 

VxWorks поддерживает целевые архитектуры (targets): Motorola 680x0 и CPU32, Intel 386/486/Pentium/.., Intel 960, SPARC, Mips R3000/4000, ARM, Motorola 88110, HP PA-RISC, Hitachi SH7600, PowerPC, DEC Alpha, Siemens C16x. 

Инструментальные платформы, поддерживаемые для Tornado (hosts): Sun SPARCstation (SunOS и Solaris), HP 9000/400,700 (HP-UX), IBM RS6000 (AIX), Silicon Graphics (IRIX), DEC Alpha (OSF/1), PC (Windows 95 и NT). 

Поддерживаемые интерфейсы host-target: Ethernet, RS-232, внутрисхемный эмулятор ICE (In-Circuit Emulator), кросс-шина (backplane), ROM-эмулятор, BDM-интерфейс (Background Debug Mode). 

Инструментальная среда Tornado имеет открытую архитектуру, что позволяет другим фирмам-производителям инструментальных средств разработки ПО реального времени интегрировать свои программные продукты с Tornado. Пользователь также может подключать к Tornado свои собственные специализированные средства разработки, а также расширять возможности инструментальных средств фирмы Wind River Systems. 

В стандартную конфигурацию Tornado входят ядро VxWorks и системные библиотеки, GNU C/C Toolkit, дистанционный отладчик уровня исходного языка CrossWind, оболочка WindSh, конфигуратор BSP WindConfig и др. 

Существует также множество программных продуктов интегрированных с Tornado производства других фирм. 

IA-SPOX 

Это многозадачное ядро реального времени, разработанное компанией Spectron Microsystems, было, по-видимому, первой успешной попыткой соединения таких понятий, как Windows и жесткое реальное время. IA-SPOX спроектировано в виде набора виртуальных драйверов (VxD), которые работают совместно с ядром Windows 2000 на нулевом уровне привилегий процессора (Ring 0). Пользовательские программы, работающие на третьем уровне (Ring 3), могут вызывать функции и процессы реального времени, а также обмениваться данными с ними. Именно на IA-SPOX базировалась объявленная в 1994 году инициатива Intel по реализации мультимедиа-функций программным путем без использования специальных процессоров обработки сигнала. Впрочем, эта инициатива (NSP, Native Signal Processing) встретила прохладный прием со стороны Microsoft, недовольной тем, что Intel вторглась на ее <<территорию>>. В результате, Intel отказалась от своей инициативы. Тем не менее IA-SPOX успело показать свою эффективность в программной реализации синтеза звука, высокоскоростной модемной связи и решения других задач, требующих быстрой и детерминированной реакции системы. 

RTX 

Фирма VenturCom разработала подсистему реального времени RTX (Real-Time Extensions) для Windows NT с благословения и при поддержке Microsoft. Microsoft передала лицензию на исходные тексты такого компонента Windows NT, как Уровень Абстракции Аппаратуры (HAL, Hardware Abstraction Level), который в основном и определяет характеристики ОС по обработке прерываний. RTX добавляет дополнительные вызовы к интерфейсу прикладного программирования (RTAPI, Real-Time API), а также загружает модифицированный HAL, который <<изолирует>> аппаратные прерывания от ядра Windows NT. RTX предоставляет для системы таймер реального времени с расширением 1млс и уменьшает время отклика. RTX обеспечивает для процессов доступ к физическим адресам памяти и портов ввода/вывода, а также специальные методы работы со страничной памятью, исключающие свойственные Windows NT задержки. Соответствующим образом отрабатываются попытки перезагрузки или тяжелые остановы типа <<голубой экран>>. Кроме того, предлагаются интерфейсы, замещающие функции WIN32, ответственные за планировку и синхронизацию задач, межзадачный обмен сообщениями, работу с аппаратными прерываниями и т.п. Самое интересное, что для этого не нужны изменения Windows NT и это не отразится на работоспособности существующих программ. 

Для разработчиков встраиваемых систем VenturCom предлагает версию Windows NT, которая требует менее 10 Мбайт ПЗУ и 8 Мбайт ОЗУ. Подкачка страниц виртуальной памяти при этом запрещена, а в качестве дополнительных драйверов предлагаются драйверы Null-Display и Null-Input, позволяющие системе работать без дисплея и клавиатуры. 

Falcon 

Под этим красивым кодовым названием мы можем легко распознать знакомую многим операционную систему iRMX. После того как Intel передала права на эту ОСРВ компании RadiSys, последняя неустанно трудилась над интеграцией полученного продукта с платформой Windows NT. Фирма выбрала стандартный путь лицензирования у Microsoft исходных текстов уровня HAL, с их последующим изменением под требования жесткого реального времени. 

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

Hyperkernel 

Это еще одна подсистема реального времени для Windows NT, которая предлагается фирмой Imagination Systems. Как и в других упомянутых ранее системах, Hyperkernel позволяет сочетать высокоскоростные задачи управления, требующие детерминированного времени отклика, и менее критичные приложения типа ПО операторского интерфейса. Microsoft и в этом случае предоставила исходные тексты HAL-уровня и разрешила распространение модифицированных версий.