Авторы:

Валентин БОРИС

Источник статьи

QNX - система реального времени

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

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

Все встроенные системы промышленого контроля и автоматизации - это многозадачные системы. Как известно, основная проблема, возникающая при создании многозадачных систем - это проблема планирования (диспетчеризации - англ. scheduling) выполнения задач в системе. Т.е. в любую многозадачную систему должен быть встроен механизм, обеспечивающий устойчивое взаимодействие между задачами, переключение системы между задачами, создание новых задач в системе и уничтожение отработавших задач, без последствий для работы остальной системы. Каждая система использует свой метод диспетчеризации, но наиболее популярные методы - это методы, основанные на приоритетах задач. Суть метода состоит в следующем: каждая задача при запуске получает некоторый приоритет, и в зависимости от используемого в системе алгоритма и приоритета, задача выбирается на исполнение.

Сейчас же рассмотрим системы реального времени с точки зрения их классификации и внутренней структуры.

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

Вполне логично, что быстродействие системы реального времени должно быть больше, чем скорость протекания процессов на объекте контроля или управления.

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

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

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

На практике зачастую применяют системы "жесткого" реального времени, и как следствие этого, их называют просто системами реального времени.

Теперь пришло время сказать несколько слов о месте ОС QNX среди всех ныне существующих операционных систем реального времени.

ОС QNX была создана программистами компании QNX Software System Ltd. в 1981 году и с этого момента она заняла лидирующее место среди систем реального времени, существующих на тот момент на рынке. ОС QNX смогла занять лидирующее положение благодаря многим особенностям, присущим только ей. Среди таких особенностей:

ОС QNX имеет все необходимые возможности, необходимые для работы во встраиваемых многозадачных системах. ОС QNX достаточно компактна для прошивки в ПЗУ, но и достаточно мощна для поддержания распределенной сети из нескольких сотен процессоров. QNX легко расширяема, давая тем самым предельную легкость в использовании. Пользователь может расширять систему за счет модулей, входящих в состав QNX, либо расширять систему собственными модулями. В устойчивом, защищенном режиме работы пользователь может испытывать новые модули, не беспокоясь о возможности нанесения вреда работе основной системе. И, наконец, QNX действительно быстра. При минимальных издержках за счет системных операций, QNX создавать вычислительные системы на базе недорогих ПК, которые по производительности ничем не уступают, а зачастую и превосходят дорогостоящие high-end модели.

Благодаря этим и многим другим своим особенностям ОС QNX заняла свое положение на рынке систем реального времени. Примером этого могут служить названия компаний, использующих ОС QNX: British Telecom, Canon, Honda, Mitsubishi, Panasonic, Saab, Sony и многие другие.