Home » Компоненты » Программное обеспечение » Можно ли получить реальное время под «настольной» Windows?
Если бы популярные ОС общего назначения обрели функциональность узкоспециализированных ОСРВ, это устроило бы всех, поскольку тогда во встраиваемых системах и в приложениях реального времени можно было бы успешно использовать стандартные операционные системы настольного класса. Расширение RTX, предлагаемое компанией IntervalZero, обеспечивает такую возможность во множестве практических ситуаций.
Можно сказать, что идея RTX коренится в самой человеческой природе: приобретя опыт работы с какой-то одной ОС в какой-то одной прикладной сфере, люди желают использовать этот опыт, а, следовательно, и саму эту ОС, в других областях, включая и те, на которые она изначально не рассчитана. Ответом на эти чаяния стало расширение RTX (Real Time eXtension), добавляющее в стандартные офисные и встраиваемые операционные системы семейства Windows (кроме линии Windows CE) поддержку реального времени. Но продукт RTX, вероятно, никогда не появился бы на рынке, если бы чуть ранее корпорация Microsoft не выпустила операционную систему Windows NT.
Разумеется, в 90 годы XX века существовали не только операционные системы семейства Windows, но и другие ОС общего назначения, тем не менее, продукция корпорации Microsoft била все рекорды популярности, и количество специалистов, знакомых с Win32 API превышало все мыслимые пределы, так что выбор поставщика ОС с точки зрения создателей RTX был однозначным. У линейки Windows была лишь одна, но очень серьезная проблема: ранние операционные системы от Microsoft не отличались высокой надежностью, в связи с чем об их использовании во встраиваемых приложениях и тем более в задачах реального времени не могло быть и речи.
Став, по сути, первой устойчивой многозадачной ОС общего назначения от Microsoft, платформа Windows NT открыла новую эру в истории корпорации Microsoft и в истории операционных систем вообще. А с легкой руки компании VenturCom, создавшей расширение RTX – и в истории систем реального времени. Первые ОС серии Windows NT разрабатывали бывшие сотрудники компании DEC, имевшие гигантский опыт по части создания профессиональных операционных систем для семейств машин класса PDP и VAX. Руководство Microsoft поставило перед этими специалистами лишь одно принципиальное условие: надежность новой ОС не должна пойти в ущерб ее эргономичности. В результате рынок получил ОС нового поколения, созданную профессионалами и для профессионалов, но сохранившую традиционное для продуктов Microsoft удобство в использовании и интуитивно понятный интерфейс. Само собой, Windows NT прилично отвечала требованиям текущих и, главное, перспективных микропроцессоров Intel. Примечательно также и то, что Windows NT изначально задумывалась как универсальная операционная система, одинаково хорошо работающая и на персональных компьютерах, и на серверах крупных офисов (а это уже было большим достижением). Выбор ОС общего назначения, которую предстояло наделить чертами ОСРВ, был, таким образом, предопределен.
Операционная система Windows NT послужила причиной появления RTX, однако этим роль данной ОС в формировании и развитии рынка встраиваемых компьютерных технологий (ВКТ) далеко не исчерпывается. Если о масштабном применении Windows 95 и Windows 98 во встраиваемых приложениях не могло быть и речи, то Windows NT и ее производные – уже совсем другое дело, и в середине 90 годов прошлого века встраиваемые проекты на базе Windows NT стали возникать массово. Для комфортного использования Windows NT во встраиваемых системах и задачах реального времени разработчикам не хватало лишь трех вещей:
1) возможности уменьшать размеры ОС до приемлемых величин;
2) средств обеспечения работы ОС в бездисковых конфигурациях (из ПЗУ или флеш-памяти), в т. ч. без монитора и без клавиатуры;
3) средств обеспечения детерминированного поведения.
Часто задаваемые вопросы
|
Выпустив свои теперь уже легендарные продукты Component Integrator и RTX, компания VenturCom удовлетворила все эти потребности. Component Integrator представлял разработчику ОС Windows NT в качестве «кубиков» – отдельных компонентов, из которых он мог легко собрать операционную систему с необходимой только ему функциональностью, расширение же RTX позволяло добавлять в обычную «настольную» ОС Windows NT поддержку работы в режиме жесткого реального времени.
Результатом применения инструмента Component Integrator являлось значительное (нередко в несколько раз) снижение требований к аппаратуре, а также дополнительное повышение надежности и производительности. Впоследствии чрезвычайно успешная технология декомпозиции и сборки нужного образа для встраиваемой системы Component Integrator была куплена корпорацией Microsoft, и под именем Component Designer стала основой нового бизнес-направления Microsoft: производство и поставка встраиваемых операционных систем (продуктовая серия Windows Embedded). Можно с высокой долей вероятности предположить, что весь бизнес Microsoft, связанный с линейкой Windows Embedded, обязан своим возникновением специалистам компании VenturCom.
Что касается RTX, то этот продукт компании VenturCom позволил и вовсе доселе немыслимое: использовать стандартные «настольные» операционные системы Microsoft в том числе и в приложениях реального времени[1]. За неброским названием «Real-Time eXtension» скрывается весьма мощный программный продукт, открывающий перед Windows-пользователями двери в мир систем с детерминированным поведением.
В настоящее время поставками расширения RTX занимается компания IntervalZero Inc., штат которой почти полностью укомплектован бывшими сотрудниками компании VenturCom. Этому предшествовала следующая цепочка событий: в 2004 году компания VenturCom сменила название на Ardence, затем в 2006 году компания Ardence была куплена корпорацией Citrix, наконец, в 2008 году на основе подразделения корпорации Citrix, занимавшегося ПО реального времени, была создана отдельная компания, получившая название IntervalZero Inc. Данное название носит характер ребрендинга и призвано подчеркнуть, что своими продуктами компания IntervalZero стремится обеспечить минимальные задержки в работе системы. Но, не смотря на все эти пертурбации, сегодня решения серии RTX развивает и поддерживает та же команда, что и раньше, поскольку костяк технических специалистов и менеджеров легендарной компании VenturCom перешел во вновь образованную компанию IntervalZero практически в полном составе.
Сегодня об инструменте корпорации Microsoft под названием Component Designer, которые делает то же, что раньше делал Component Integrator компании VenturCom, знают даже простые обыватели. Расширение реального времени RTX известно за пределами профессиональных кругов в меньшей степени, тем не менее, за 10 с лишним лет существования RTX удобство и эффективность этого продукта смогли оценить очень многие разработчики, реализовавшие на его основе сотни тысяч проектов. И все это время RTX успешно развивался, обрастая новыми функциями и возможностями. RTX образца 2011 года – это мощный профессиональный программный пакет, распространяющий сферу применимости стандартных операционных систем семейства Windows на очень многие конечные задачи, требующие жесткого временного детерминизма. Посмотрим, что представляет собой современный RTX с технической точки зрения.
Продукт RTX имеет в своем составе две части. Первая часть – пакет разработчика RTX SDK (Software Development Kit) – предназначен для создания собственных приложений для работы в среде RTX. Вторая часть – подсистема исполнения RTX Runtime – представляет собой непосредственно подсистему реального времени для обслуживания приложений RTX. Подсистема RTX Runtime устанавливается на целевые системы, где предполагается запуск RTX-приложений. Пакет разработчика также включает в себя подсистему реального времени, поэтому разрабатываемые приложения RTX можно запускать и отлаживать непосредственно на локальном месте разработчика. Кроме того, очень ценным свойством SDK является его тесная интеграция со средой разработки Visual Studio от компании Microsoft.
На момент написания статьи последней версией RTX являлась RTX 2011. С версии RTX 2009 нумерация слегка изменилась. Ранее версии имели номера (вплоть до 8.1.1), теперь вместо номеров используются годы выпуска. Компания IntervalZero обеспечивает 10-летний срок поддержки своих продуктов, поэтому, например, приобрести системы исполнения к ранее купленной версии не составляет труда. Самая ранняя поддерживаемая на данный момент версия – это RTX 7.1.
Каким образом можно создать на основе Windows систему реального времени? Стоит сразу отметить, что все предлагаемые на рынке решения не меняют функциональность и возможности самой ОС Windows; в ее поведении и работе ничего не меняется. Подсистема, реализующая функции ОСРВ, работает «рядом» с Windows. Обычные Windows-задачи выполняются в недетерминированной среде, как и раньше. Один из вариантов реализации подобного механизма – разделение ресурсов между ОС Windows и подсистемой реального времени. Подобный подход реализовала, например, компания TenAsys, предлагающая продукт INTime. При использовании INTime на одной аппаратной платформе запускаются две виртуальные машины – с ОС Windows и с подсистемой реального времени INTime. Здесь в целом неважно, какая ОС выполняется параллельно с подсистемой реального времени, поддержка Windows определяется только наличием модифицированного HAL для работы в таком режиме и наличием API для связи задач, работающих в режиме реального времени и в Windows-среде. С популяризацией многоядерных архитектур стало возможным и просто выделение отдельных ядер под Windows и под задачи реального времени. Так поступает компания RadiSys для параллельного запуска своей ОСРВ OS-9 и ОС Linux на двуядерном процессоре. Однако довольно сложная архитектура того же INTime не позволяет добиться высокой производительности в задачах реального времени.
В отличие от описанного подхода RTX тесно интегрируется с ОС Windows. На рис. 1 приведена его архитектура. RTX дополняет стандартный HAL Windows своим расширением (RTX HAL Extension). На этом уровне кроме организации доступа к аппаратуре обрабатываются прерывания от таймера подсистемы реального времени. Непосредственно функциональность реального времени реализует слой RTSS (Real-Time SubSystem). Это ядро всей подсистемы реального времени. Здесь находится свой планировщик, который оперирует выполнением задач реального времени и предоставлением ресурсов задачам Windows-среды. Фактически, любая задача RTSS имеет более высокий приоритет, нежели любая задача, выполняющаяся в Windows. Также этот слой полностью реализует API реального времени (Real-Time API – RTAPI), на основе которого создаются приложения подсистемы RTSS.
Приложения реального времени (RTSS Process) здесь выполняются на уровне ядра Windows, имеют те же привилегии и ограничения, что и драйверы устройств. Этот подход отличается от других реализаций (например, INTime обеспечивает приложениям реального времени пользовательский режим, собственное адресное пространство и изоляцию). Но за счет этого достигается очень быстрое переключение контекста задач.
Доступ к функциям RTAPI возможен как для процессов RTSS, так и для «обычных» приложений Win32. Это позволяет выделять в Windows-задачах отдельные критичные к времени выполнения участки. Такой возможности лишены системы, где Windows и подсистема реального времени работают параллельно. Кроме того, расширение интерфейса Win32 API функциями RTSS позволяет приложениям Win32 и приложениям RTSS обмениваться данными.
Как можно видеть из рис. 1, в составе RTX присутствуют компоненты, организующие для приложений RTSS сеть реального времени и работу в реальном времени с устройствами USB. Это стек протоколов RT-TCP/IP и стек RTX USB. Сетевой стек обеспечивает работу всех сетевых протоколов и физического уровня в детерминированном режиме. Аналогично работает поддержка USB – все компоненты работают с полностью предсказуемыми задержками.
Фактически, наличие стека реального времени означает работу всех функций и драйверов с гарантированными временами. Т.е. разработчик может быть уверен, что входящий пакет будет обработан, и исходящие данные будут доставлены до физического уровня за ограниченный промежуток времени. При этом наличие стека RT-TCP/IP не означает, что вся сеть будет работать в реальном времени, даже если данный стек будет стоять на всех узлах сети. Сеть состоит из многих элементов, в частности, в ней есть оборудование, которое реализует ее топологию. На физическом уровне сети могут происходить различные процессы, дополнительное оборудование может вносить свои задержки, кроме того, ОС Windows тоже не бездействует в плане сетевой активности. Поэтому сетевой стек реального времени позволяет получить гарантированную производительность, но не гарантирует работу всей сети без сбоев и задержек. Стек RT-TCP/IP предназначен только для достижения максимума производительности в сетевых задачах. Наиболее приближенную к реальному времени работу сети можно получить, если выделить все сетевые адаптеры для RTX в один независимый сетевой сегмент.
Несмотря на тесную интеграцию с операционной системой, RTX обладает таким важным свойством, как устойчивость к сбоям среды Windows. Вся подсистема реального времени продолжает работать, даже если Windows аварийно завершилась и выдала «синий экран смерти». Естественно, работать продолжают только слой RTSS, драйверы реального времени и процессы RTSS.
Что RTX может дать разработчику? Во-первых, использование стандартной ОС Windows позволяет обойтись без дополнительного аппаратного обеспечения и специализированных ОСРВ. Весь проект от начала до конца может быть реализован специалистами, ранее разрабатывавшими только обычные Windows-приложения, т.к. API RTX максимально приближен к API Win32 и не требует большого времени на освоение. Благодаря огромному сходству между этими двумя API, разработчикам, никогда не имевшим дело с ОСРВ, не составит большого труда научиться создавать приложения реального времени под RTX. Чему весьма поспособствует и интеграция со знакомой системой разработки Microsoft Visual Studio. Все это в совокупности позволит значительно (очень часто в разы) сократить затраты на развертывание проекта, поскольку стоимость владения и применения RTX сопоставима (а в большинстве случаев ниже) со стоимостью традиционных ОСРВ.
Часто задаваемые вопросы (продолжение)
|
Во-вторых, и это очень важно, применение RTX не является неким компромиссом или ограничением возможностей. Разработчик получает современную, мощную, быструю и гибкую подсистему реального времени, не уступающую по функциональности классическим ОСРВ. Абсолютно все процессы в подсистеме RTSS детерминированы, а это является основой любой системы реального времени.
Детерминированность процессов позволяет говорить, что RTX обладает свойствами системы жесткого реального времени. Ограниченное время работы имеют все механизмы синхронизации, обработчики прерываний, сетевые функции, драйвера. Также для получения детерминированности планировщик RTX может в любое время вытеснить подсистему Windows для запуска своих задач.
Это достигается благодаря тому, что расширение RTX HAL перехватывает управление прерываниями у Windows HAL. Ни одно из прерываний Windows-среды не может прервать работу или замаскировать прерывание RTX. И наоборот, во время работы RTX-задач маскируются все прерывания, обрабатывающиеся Windows, и приостанавливается работа Windows. Фактически, по отношению к задачам RTX вся ОС Windows работает в фоновом режиме.
Кроме обеспечения детерминированности RTX обладает другими ключевыми особенностями.
Как уже упоминалось, подсистема RTSS продолжает работать в случае «краха» Windows, ее «синего экрана смерти». Но не только. RTSS умеет корректно обрабатывать завершения Windows, как штатные, так и аварийные. Обработчики завершения работы в случае завершения по ошибке выполняются с небольшими ограничениями – им нельзя пользоваться сервисами Windows, в том числе запрашивать выделение динамической памяти. Подсистема RTSS работает до тех пор, пока не завершатся все обработчики. С практической точки зрения обработчики должны корректно заканчивать работу с аппаратурой, оставлять рабочее состояние остальной системы, а также могут передавать управление резервной системе, если используется резервирование.
Невозможность обработчика завершения работы получить новый пул динамической памяти связана с тем, что RTX использует общую с Windows динамическую память. Запросы на выделение и освобождение памяти обслуживаются Windows, и потому в этой части поведение задачи RTX может быть недетерминированным. Это необходимо для корректной работы Windows и RTSS задач.
Естественно, такой способ работы с памятью не является единственным. Для обеспечения детерминированности поведения задач RTSS при операциях с памятью в RTX есть «локальный пул памяти» (Local Memory Pool). Этот объем памяти выделяется сразу при старте подсистемы RTSS, и задачи RTSS могут выделять себе необходимую память из этого пула. В этом случае работа с памятью является полностью детерминированной.
Также в RTX имеется механизм, с помощью которого можно сделать доступной память, которую «не видит» Windows. Этой цели служат, в частности, функции PAE (Physical Address Extensions), расширяющие адресное пространство до 36 бит и позволяющие получать на 32-разрядных системах доступ к 64 Гбайт памяти.
Еще одной крайне важной особенностью является организация связи между задачами Win32 и RTSS. Механизмами взаимодействия процессов (IPC) являются привычные события, мьютексы, семафоры и общая память. При этом взаимодействие между детерминированной подсистемой RTSS и недетерминированной подсистемой Windows организовано так, чтобы исключить перекрестное влияние на их работу. Для этого механизм IPC реализован по принципу работы системы прерываний. Драйвер RTX со стороны Windows и окружение RTSS взаимодействуют через очереди. В каждом направлении организовано по две очереди и при необходимости инициирующая сторона помещает в одну из очередей необходимую команду и прерывание запроса обслуживания (SRI – Service Request Interrupt) для обработки команды на другой стороне. Сервер на принимающей стороне обрабатывает запрос и помещает ответ в другой буфер. Такая организация взаимодействия обеспечивает отсутствие взаимных блокировок подсистем. Архитектура SRI направлена на достижение минимального времени отклика, что несколько снижает возможную пропускную способность обмена, но гарантирует, что запрос будет обработан в минимально возможное время.
Часто задаваемые вопросы (продолжение)
|
Еще одним механизмом, направленным на обеспечение безопасности взаимодействия подсистем, является механизм прокси-процессов, относящийся к воздействию из среды Windows на RTSS-окружение. Когда задача Win32 хочет получить доступ к объекту RTSS, создается так называемый прокси-процесс, с которым процесс Win32 взаимодействует непосредственно. А уже внутри себя RTX организует необходимое воздействие на реальную задачу RTSS. Создание, управление и освобождения прокси-процесса происходит полностью прозрачно для задачи Win32.
Крайне важным свойством, которое появилось с версии RTX 2009, является поддержка для задач RTSS работы в режиме SMP – симметричной мультипроцессности. В версии RTX 2011 было отменено деление продуктов по признаку наличия либо отсутствия поддержки SMP. Теперь при разработке программ с помощью SDK всегда есть возможность использовать SMP, а Runtime отличаются только числом ядер, которые можно выделить под RTX (от 1 до 31). И в сочетании с различным оборудованием запуск RTX возможен в различных режимах:
Данный вариант поддерживали предыдущие версии без SMP. Кроме того, это единственный вариант работы для RTX Runtime Solo с поддержкой выделения одного ядра. RTX и Windows выполняются здесь на одно- или многопроцессорной (многоядерной) системе. Возможны два варианта:
В этом случае RTX и Windows работают на одном ядре процессора, разделяя его ресурсы. Соответственно и возможности такой системы довольно ограничены, особенно при большой загрузке. Такой вариант применим для систем с не очень большими требованиями к подсистеме реального времени. Если загрузка довольно серьезная, то лучше применить другой режим.
В этом случае RTX занимает полностью одно процессорное ядро. Естественно, для этого необходимо, чтобы в системе было более одного ядра (или процессора). На остальных ядрах выполняется Windows. В такой системе RTX уже не требуется делить вычислительные ресурсы с Windows, потому здесь уже возможны реализации более серьезных систем реального времени. В современных условиях, когда широко распространены процессоры с двумя и более ядрами, выделение отдельного ядра под RTX не влечет за собой каких-либо серьезных затрат.
Опять же, для реализации этого режима необходимо наличие нескольких ядер или процессоров. Режим SMP поддерживает выделение под задачи RTX от двух до тридцати одного процессорного ядра, которые используются по возможности с полностью симметричной загрузкой. На оставшихся ядрах будет выполняться Windows. Реализация такого режима позволяет строить системы реального времени, которые крайне требовательны к производительности и вычислительным мощностям и занимаются очень мощными вычислениями.
Поддержка SMP в RTX реализована с оптимизацией под встраиваемые приложения. Разработчику доступны механизмы по управлению выполнением нитей/процессов на конкретном процессоре (или нескольких процессорах) и по обработке процессорами прерываний. Исходя из своих установок и свойств задач, назначенных разработчиком, RTX обеспечивает оптимальную загрузку выделенных под подсистему реального времени ядер.
Наличие различных версий SDK и Runtime позволяет управлять своими вложениями в систему посредством выбора нужного числа поддерживаемых ядер. Чем больше в системе ядер, поддерживаемых RTX, тем дороже конечное решение. Все Runtime, даже с поддержкой выделения 31 ядра, сохраняют поддержку работы на одно- или двуядерных системах, где нельзя реализовать режим SMP для RTSS-задач. Число используемых подсистемой RTSS ядер задается в настройках и ограничено лишь тем максимумом, который поддерживает установленный в систему Runtime.
Несмотря на сложность архитектуры RTX, для пользователя общение c RTX является простым и прозрачным. Конечно, знание особенностей функционирования RTX способствует созданию более совершенных систем и ускорению их отладки. Но и начать работать с RTX неподготовленный человек может очень быстро. Например, свойства подсистемы RTX задаются из одного довольно простого приложения. На рис. 2 приведен пример одной из закладок этого приложения по настройке работы с памятью.
Плюс к тому, в составе RTX SDK имеется обширная документация по работе с RTX (рис. 3). Она скомпонована в виде одного файла справки и охватывает как объяснение структуры RTX, так и приемы программирования, настроек, включая полное описание API и требований к разработке программ.

Рис. 3. Справочная система RTX
Программисты, знакомые с Microsoft Visual Studio, имеют возможность пользоваться данным инструментарием для разработки задач RTX. В среду разработки добавляются шаблоны возможных вариантов приложений RTX (рис. 4). Стандартные отладочные механизмы Microsoft Visual Studio при этом доступны для отладки приложений RTX. По сути, вся разработка ведется привычными методами с помощью известных инструментов, что позволяет запустить новый проект очень быстро. В целом можно отметить следующие свойства системы разработки RTX.
Для знакомства с RTX доступна оценочная (Evaluation) версия RTX SDK, работающая 30 дней. В ней присутствуют практически все, что есть в коммерческой версии SDK, включая документацию, поддержку интеграции с Microsoft Visual Studio, средства оценки производительности системы, тестовые примеры, а также максимальный RTX Runtime с поддержкой выделения 31 процессорного ядра. Оценочная версия позволяет «пощупать» большую часть функциональности настоящего RTX и сделать вывод относительно ее применимости.
Часто задаваемые вопросы (окончание)
|

Рис. 4. Шаблоны RTX-приложений в среде Microsoft Visual Studio.
Учитывая, что RTX позволяет получать реальное время в системах под управлением ОС общего назначения, сфера влияния RTX весьма обширна. Число применений продукта RTX составляет сегодня около миллиона. В промышленности, медицине и телекоме пользователями RTX являются такие компании, как Siemens, ABB, Quanser, National Instruments, VMIC, General Electric. В аэрокосмической отрасли RTX используется, например, компаниями Raytheon, Boeing, Honeywell. Автомобильная промышленность также не обошла этот продукт вниманием: реализованные RTX-проекты есть у Porsche, у Renault, у Peugeot-Citroen и у других автопроизводителей. Хорошим практическим примером из промышленного сектора может служить проект Siemens по переводу своей Windows-платформы для контроллеров на базу RTX, реализация которого позволила значительно сократить затраты на портирование продукта в среду реального времени и ускорить время разработки. В военной сфере RTX использовался, в частности, компанией Raytheon в системах обеспечения станций по тестированию ракет Patriot. Здесь RTX позволил отказаться от разработки и поддержки частных аппаратных решений, которые были заменены программным решением, работающим в режиме реального времени. В России расширение RTX чаще всего используется в промышленной автоматизации, а также системах контроля, тестирования и измерений.
Исходя из вышесказанного, можно заключить, что RTX – это очень мощный, современный и вместе с тем простой в использовании продукт, позволяющий строить Windows-ориентированные системы реального времени. Использование RTX наиболее эффективно в следующих ситуациях.
Среди широких масс разработчиков по всему миру зреет понимание того, что использовать традиционные ОСРВ в любых ситуациях, требующих поддержки реального времени – все равно, что стрелять из пушки по воробьям, т.е. дорого и во многих смыслах неразумно. Здесь коренится одна из причин положительной динамики распространения встраиваемых проектов на базе ОС Windows. Можно не сомневаться, что различные версии ОС Windows в комбинации с соответствующими версиями RTX будут успешно конкурировать с традиционными ОСРВ и в последующие годы, поскольку стремление использовать недорогие, хорошо знакомые ОС общего назначения во встраиваемых системах и в приложениях реального времени в людях неистребимо. Это простая, естественная и понятная человеческая потребность, рыночный вызов, который будет существовать еще очень долго, и на который RTX великолепно отвечает своим отличным набором инженерных свойств и низкой ценой.
Положение дел на рынке инструментального ПО сегодня таково, что лучшие средства разработки, отладки, трассировки и т.п. предлагаются для ОС семейства Windows. Мощь, цены и удобство этих инструментов не идут ни в какое сравнение с возможностями существующих средств разработки под VxWorks, QNX и других ОСРВ. Инструменты Windows-разработчика хороши не только в связи с наличием развитой функциональности, но и по причине невысокой цены, а также широчайшей распространенности и известности. Эта объективно сложившаяся ситуация и мотивирует людей изыскивать способы использовать одну ОС для всех приложений, включая встраиваемые приложения и приложения реального времени. Успешно решать последний класс задач и призван RTX от компании IntervalZero. Задумайтесь: так ли уж нужны вам все эти ОСРВ, если пакет Visual Studio уже есть, недостатка людей, умеющих им пользоваться, на рынке не предвидится, а расширение RTX стоит сущие копейки? Если вы создаете бездисковое решение реального времени, достаточно использовать RTX в комбинации с операционной системой серии Windows Embedded – все равно это будет дешевле, быстрее и проще, чем при использовании любой традиционной ОСРВ; если же бездисковость не требуется – все еще лучше, поскольку тогда можно ограничиться самой обычной недорогой ОС настольного класса – той самой, что работает на вашем персональном компьютере.
Желание использовать стандартные общепринятые продукты класса Windows или Linux в максимально широком спектре приложений не исчезнет у людей никогда. В каком бы вертикальном сегменте рынка – промышленном, авиационном и т.п. – люди ни работали, они явно или неявно, осознанно или неосознанно, хотят работать со стандартными недорогими ОС и инструментальными средствами. Важна лишь принципиальная возможность такого использования применительно к конкретной задаче. Если такая возможность имеется, то, благодаря существованию таких решений, как RTX, применение традиционных ОСРВ следует рассматривать в самую последнюю очередь просто в силу экономических причин.
Бывает, конечно, и так, что невозможность использования стандартных операционных систем очевидна изначально. Если, например, вам необходима сертификация по стандарту DO-178B или необходимо обеспечить высшие уровни надежности по EAL, ни Linux, ни Windows, ни RTX, вам точно не помогут.
Прежде, чем покупать ОСРВ, удостоверьтесь в том, что вы не можете решить вашу задачу с использованием обычной «стандартной» ОС. Если никакая из разновидностей классических ОС Windows и Linux вам не подходит, подумайте над тем, как интегрировать в компьютер, работающий под управлением Windows / Linux подсистему реального времени, дабы вся работа по реализации вашего проекта осуществлялась в рамках одной стандартной ОС. И лишь в самую последнюю очередь, вполне убедившись, что ни первый, ни второй вариант вам не подходит, подумайте о том, как решить свою задачу при помощи операционной системы реального времени. Сегодня на рынке предлагается относительно много ОСРВ, различающихся по производительности, сетевым возможностям, потреблению ресурсов, надежности, наличию сертификатов безопасности, адекватности свойств ряду вертикальных рынков типа авионики и т. п. И все же ОСРВ – это крайнее средство, к которому следует прибегать лишь тогда, когда все иные пути отрезаны.
Автор: ЗАО «РТСофт», Microsoft embedded partner
[1] Операционные системы серии Windows CE могут быть сконфигурированы как самые настоящие ОСРВ, однако они не базируются на ядре NT и с архитектурной точки зрения имеют мало общего с остальными ОС семейства Windows.