Научно-исследовательская лаборатория систем ЧПУ
Научно-исследовательская лаборатория систем ЧПУ

Поиск по сайту:
 

Расписание курсов "Программирование SINUMERIK 810D/840D/840Di"



Исследование операционных систем, используемых в современных системах ЧПУ

Автор: Константин Воскресенский
кафедра КСУ МГТУ СТАНКИН
Опубликовано: 06.01.2006
Версия текста: 1.0

Реферат по лекционному курсу "Программное обеспечение систем управления"
Рецензент проф. д.т.н Мартинов Г. М.

 

1. Общее описание операционных систем реального времени
2. Обзор операционных систем реального времени
3. ОС РВ используемые в современных системах ЧПУ
4. Обзор ЧПУ
 
5. Выводы
 
6. Используемая литература
 

1. Общее описание операционных систем реального времени

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

Основными ресурсами являются процессор (процессорное время), оперативная память и периферийные устройства.

Управление ресурсами сводится к выполнению следующих задач: упрощение доступа к ресурсам, распределение их между процессами.

Решение первой задачи позволяет "спрятать" аппаратные особенности вычислительной системы, и тем самым предоставить в распоряжение пользователю или программисту виртуальную машину с существенно облегченным управлением.

Таким образом, ОС поддерживает следующие интерфейсы: пользовательский (командный язык для управления функционированием системы и набор сервисных услуг); программный (набор услуг, освобождающий программиста от кодирования рутинных операций).

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

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

В настоящее время существует большое разнообразие ОС, которые классифицируются по следующим признакам:

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

В соответствии с первым признаком различаются одно- и многопользовательские ОС. Второй признак делит ОС на одно- и многозадачные.

В соответствии с третьим признаком ОС делятся на:

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

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

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

В настоящее время существует огромное количество типов ОС, но в дальнейшем рассматриваются только ОС РВ.

Сначала необходимо дать определение системе реального времени.

Система реального времени (СРВ) - это система, правильность функционирования которой зависит не только от логической корректности вычислений, но и от времени, за которое эти вычисления производятся.

Для событий, происходящих в такой системе, важно время, когда эти события происходят, и их логическая корректность.

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

1.1 Что такое система реального времени

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

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

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

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

Кроме того, СРВ можно разделить на системы специализированные и универсальные.

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

Универсальная СРВ должна уметь выполнять произвольные (заранее неопределенные) временные задачи без применения специальной техники. Разработка таких систем является самой сложной задачей, хотя обычно, требования, предъявляемые к таким системам, мягче, чем требования к специализированным системам.

1.2 Основные требования к СРВ

  • возможность параллельного выполнения нескольких задач;
  • предсказуемость;
  • важно максимальное (не среднее) время отклика на событие;
  • особые требования в вопросах безопасности;
  • возможность безотказной работы в течение длительного времени.

1.3 Общие характеристики СРВ

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

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

1.4 Способы использования ОС

5 видов операционных систем:

  1. ОС РВ отсутствует. Для данной рефератной работы это положение принципиально не подходит, т.к. здесь я буду писать только о ОС РВ
  2. Классическая ОС. Win NT, Linux и Unix.
  3. Классическая ОС с расширением РВ (Win NT - RTX, RT Linux, RT Unix)
  4. Собственная ОС РВ. Любой программист может создать свою ОС РВ, используя несколько существующих на момент написания реферата способов: создавать ОС на основе существующей платформы подходящей для этой цели или писать "с нуля". На эту тему выпущены множество книг, как в бумажном, так и в электронном виде, в которых рассказываются принципы разработки таких систем, основные шаги, положения, принципиальные моменты и т.д. Примером такой литературы может выступать книга под номером 2 в списке используемой литературы в конце реферата.
  5. Коммерческая ОС. Примером могут служить такие системы как VxWorks, OS9 и т.п. Необходимо отметить, что такие системы очень дорогие. Например, стоимость полного пакета ОС VxWorks (Tornado 1.0) в 2002 году составляла около 15 000 долларов США. Впрочем, с годами такая система значительно дешевеет - сегодня ее стоимость составляет около 10 000 долларов (Tornado версии 2.0 и выше - полная стоимость зависит от выбираемых компонентов).

Для более детального рассмотрения возможностей ОСРВ представлены ориентировочные цифры, дающее представление о порядке времени реакции и подходящих операционных системах. Данная таблица сформирована на основании экспериментальных данных, полученных на базе вычислительных комплексов, построенных на основе процессоров Intel 80486DX. Безусловно, данный процессор на сегодняшний день является устаревшим, но можно сделать выводы об уровне реакции на внешние события различных систем РВ.

Время реакцииИспользованные ОС
Менее 10 мкс Только ОСРВ, но даже они могут быть бессильны
10 - 100 мкс Операционные системы реального времени
100 мкс - 1 мс ОСРВ, RTAI, RT- UNIX и LINUX, расширения реального времени для Windows NT, CE
1 мс Можно пытаться делать что-то с Linux и Windows NT, но не для систем, где опоздания реакции могут привести к тяжелым последствиям

Из таблицы видно, что временные рамки ОСРВ достаточно жесткие. Среди современных операционных систем есть класс продуктов, разработанных специально для построения систем жесткого реального времени - VxWorks, OS9, QNX, LynxOS, OSE и другие. Эти системы содержат необходимый набор инструментов, и в некоторых случаях являются единственным выбором - на него приходится идти, невзирая на затраты. Однако достаточно часто требования к реальному времени (полная предсказуемость времени реакции) становятся менее жесткими, например, необходимо добиться только нужной средней производительности.

Иногда достаточно жестко контролировать только одно из событий, допуская при этом задержки реакций на остальные. В подобных случаях возможности выбора расширяются, и желаемых результатов можно достичь, используя такие широко распространенные операционные системы как LINUX, Windows NT, Windows CE, дополняя их расширениями реального времени (RTAI, RT LINUX, RTX).

1.5 Требования, предъявляемые ОС при проектировании ОСРВ

1.5.1 Требование 1. ОС должна быть многонитевой (multi-threaded) и прерываемой

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

Первое требование состоит в том, что ОС должна быть многонитевой по принципу абсолютного приоритета (прерываемой). Планировщик должен иметь возможность прервать любую нить и предоставить ресурс той нити, которой он более необходим. ОС (и аппаратура) должны также обеспечивать прерывания на уровне обработки прерываний.

1.5.2 Требование 2. Должно существовать понятие приоритета нити

Проблема в том, чтобы определить, какой задаче требуется ресурс. В идеальной ситуации ОСРВ отдает ресурс нити или драйверу с ближайшим крайним сроком (так называемые ОС, управляемые временным ограничением (deadline driven OS)).

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

1.5.3 Требование 3. ОС должна обеспечивать предсказуемые механизмы синхронизации задач

Задачи разделяют данные (ресурсы) и должны сообщаться друг с другом, следовательно, должны существовать механизмы блокирования и коммуникации.

1.5.4 Требование 4. Должна существовать система наследования приоритетов

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

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

Чтобы устранить такие инверсии, ОСРВ должна допускать наследование приоритета, т. е. повышение приоритета до уровня вызывающей нити. Наследование означает, что блокирующая ресурс нить наследует приоритет блокируемой нити (справедливо лишь в том случае, если блокируемая нить имеет более высокий приоритет).

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

1.5.5 Требование 5. Поведение ОС должно быть известно

Наконец, следует рассмотреть временные ограничения. Время выполнения системных вызовов и временные характеристики поведения системы в различных обстоятельствах должны быть известны разработчику, поэтому производитель ОСРВ должен приводить следующие характеристики:

латентную задержку прерывания (т. е. время от момента прерывания до момента запуска задачи): она должна быть предсказуема и согласована с требованиями приложения. Эта величина зависит от числа одновременно "висящих" прерываний;

максимальное время выполнения каждого системного вызова (должно быть предсказуемым и независимым от числа объектов в системе);

максимальное время маскирования прерываний драйверами и ОС.

системные уровни прерываний;

уровни прерываний драйверов устройств, их временные характеристики и т. д.

Когда все указанные характеристики ОС известны, можно представить разработку СРВ на базе данной ОС с учетом возможностей выбранной ОСРВ и аппаратуры.

2. Обзор операционных систем реального времени

На сегодняшний день существует более 100 коммерческих ОСРВ. Есть множество бесплатных (или условно бесплатных) СРВ и систем, имеющих статус исследовательских или университетских проектов. Сначала рассмотрим краткое описание некоторых систем реального времени, а затем более подробно остановимся на СРВ Win NT RTX, как наиболее перспективной системе.

2.1 QNX

Операционная система QNX является разработкой канадской компании QNX Software System Ltd (1981).

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

QNX - первая коммерческая ОС, построенная на принципах микроядра и обмена сообщениями. Система реализована в виде совокупности независимых (но взаимодействующих через обмен сообщениями) процессов различного уровня (менеджеры и драйверы), каждый из которых реализует определенный вид сервиса.

Эти идеи позволили добиться нескольких важнейших преимуществ:

  • предсказуемость, означающая ее применимость к задачам жесткого реального времени. Ни одна версия UNIX не может достичь подобного качества, поскольку код ядра слишком велик. Любой системный вызов из обработчика прерывания в UNIX может привести к непредсказуемой задержке (как и в Windows NT);
  • масштабируемость и эффективность, достигаемые оптимальным использованием ресурсов и означающие ее применимость для встроенных (embedded) систем. В каталоге dev присутствуют только необходимые для поставленных задач файлы, соответствующие нужным драйверам. Драйверы и менеджеры можно запускать и удалять (кроме файловой системы) динамически, просто из командной строки. Возможна также покупка только тех модулей, которые реально необходимы для обеспечения нужных функций;
  • расширяемость и надежность одновременно, поскольку написанный драйвер не нужно компилировать в ядро, рискуя вызвать нестабильность системы.

Система построена по технологии FLEET [Fault-tolerance (отказоустойчивая), Load-bаlаncing (регулирующая нагрузку), Еffiсiеnt (эффективная), Ехtеnsible (расширяемая), Тгаnsparent (прозрачная)], которая характеризуетмя следующим. QNX является ОСРВ на основе микроядра (размером около 10 Кб). В качестве основного средства взаимодействия между процессами система использует передачу сообщений. Благодаря этому в 32-битовой среде возможно взаимодействие процессов с 32 и 16-битовыми кодами, причем сообщения передаются между любыми процессами, независимо от того, находятся ли процессы на одном компьютере или на разных узлах сети.

Пользователь, работая на одном из узлов сети, может иметь доступ к любым ресурсам остальных узлов, включая порты, файловую систему и задачи. Пользователю нет необходимости вникать в сетевой протокол, который, кстати, не является тайной, вплоть до его структуры. Он содержит пакеты, которые применяются и для передачи сообщений. Сетевой администратор распознает эти пакеты и переправляет микроядру, которое, в свою очередь, переправляет их в шину локальных сообщений. QNX распознает не только пакеты сообщений QNX-процессов. Можно также легко обращаться к сетевому администратору для передачи таких пакетных протоколов, как TCP/IP, 8MB и др. Возможно обращение к различным сетевым администраторам через один кабель.

Операционная система QNX объединяет всю сеть ПК в единый набор ресурсов с абсолютной прозрачностью доступа к ним. Узлы могут добавляться и исключаться из сети, не влияя на целостность системы. Сетевая обработка данных в QNX является настолько гибкой, что можно объединить в одну сеть любой разнородный набор Intel совместимых компьютеров, соединенных через Arcnet, Ethernet, Token Ring или через последовательный порт, к которому также может быть подключен модем. Кроме того, возможно участие компьютера одновременно в нескольких сетях, и если одна из них окажется перегруженной или выйдет из строя, то QNX автоматически будет использовать другие доступные сети без потери информации.

QNX имеет некоторые ограничения, связанные с ориентацией системы на рынок встроенных систем реального времени:

  • нет поддержки SMP;
  • отсутствует запись виртуальной памяти на диск;
  • неэффективная и нестандартная поддержка нитей;
  • неполноценная реализация отображения файлов в памяти;
  • нет поддержки UNIX-domain sockets;
  • слабые средства безопасности в рамках собственного сетевого протокола.

Несмотря на присущие минусы, для QNX разработано множество пользовательских программ, например, базы данных, которые по производительности часто превосходят аналоги под управлением других операционных систем.

В российской промышленности QNX встречается достаточно часто. Это объясняется наличием достаточного количества программного обеспечения под QNX (драйверы и т. д.) для различного оборудования, представленного на российском рынке.

2.2 VxWorks/Tornado

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

VxWorks поддерживает целевые архитектуры (targets):

  • Motorola 680x0 и CPU32, PowerPC;
  • Intel 386/486/Pentium, Intel 960;
  • Spare, Mips R3000/4000;
  • AMD 29K, Motorola 88110;
  • HP PA-RISC;
  • Hitachi SH7600;
  • DEC Alpha.
  • Инструментальные платформы, поддерживаемые для Tornado (hosts):
  • Sun SPARCstation (SunOS и Solaris);
  • HP 9000/400,700 (HP-UX);
  • IBM RS6000 (AIX);
  • Silicon Graphics (IRIX);
  • DEC Alpha (OSF/1);
  • PC (Windows).
  • Поддерживаемые интерфейсы host-target:
  • host-target Ethernet;
  • RS232;
  • внутрисхемный эмулятор ICE (In-Circuit Emulator);
  • кросс-шина (backplane).

Операционная система VxWorks построена, как и положено ОС жесткого реального времени, по технологии микроядра, т. е. на нижнем непрерываемом уровне ядра выполняются только базовые функции планирования задач и их управления коммуникацией/синхронизацией. Все остальные функции операционной системы более высокого уровня (управление памятью, вводом/выводом, сетевые средства и т. д.) базируются на простых функциях нижнего уровня, что позволяет обеспечить быстродействие и предсказуемость ядра, а также легко построить необходимую конфигурацию операционной системы.

В многозадачном ядре wind применен алгоритм планирования задач, учитывающий приоритеты и включающийся по прерываниям. В качестве основного средства синхронизации задач и взаимоисключающего доступа к общим ресурсам в ядре wind применены семафоры. Имеется несколько видов семафоров, ориентированных на различные прикладные задачи: двоичные, целочисленные, взаимного исключения и POSIX.

Все аппаратно-зависимые части VxWorks вынесены в отдельные модули для того, чтобы разработчик встроенной системы мог сам портировать VxWorks на свою нестандартную целевую машину. Этот комплект конфигурационных и инициализационных модулей называется BSP (Board Support Package) и поставляется для стандартных компьютеров (VME-процессор, PC или Sparcstation) в исходных текстах. Разработчик нестандартной машины может взять за образец BSP наиболее близкий по архитектуре стандартный компьютер и перенести VxWorks на свою машину путем разработки собственного BSP с помощью BSP Porting Kit.

2.2.1 Базовые сетевые средства VxWorks: UNIX-networking, SNMP и STREAMS.

VxWorks была первой операционной системой реального времени, в которой реализован протокол TCP/IP с учетом требований реального времени. С тех пор VxWorks поддерживает все сетевые средства, стандартные для UNIX: TCP/UDP/ICMP/IP/ARP, Sockets, SLIP/CSLIP/PPP, telnet/rlogin/rpc/rsh, ftp/tftp/bootp, NFS (клиент и сервер).

Wind River Systems анонсировала (1994) программу WindNet, по которой ведущие фирмы-производители программных средств в области коммуникаций интегрировали свои программные продукты с VxWorks.

На сегодняшний день - это сетевые протоколы Х.25, ISDN, ATM, SS7, Frame Relay и OSI; CASE-средства разработки распределенных систем на базе стандартов ROOM (Real-Time Object Oriented Modelling) и CORBA (Common Object Request Broker Architecture); менеджмент сетей по технологиям MBD (Management By Delegation) и CMIP/GDMO (Common Management Information Protocol/Guidelines for Definition of Managed Objects).

2.2.2 Мониторинг и отладка в реальном масштабе времени: WindView.

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

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

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

Специально для систем с сильно ограниченным объемом памяти компания Wind River Systems разработала редуцированное ядро WindStream, которое требует для работы не более 8 Кб ПЗУ и 2 Кб ОЗУ. При этом для WindStream применим весь спектр инструментальных средств VxWorks, включая WindView.

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

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

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

2.3 RTLinux

2.3.1 Основные сложности при реализации систем реального времени в среде LINUX

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

Linux - современная POSIX-совместимая и Unix-подобная операционная система для ПК и рабочих станций, т. е. многопользовательская сетевая операционная система.

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

Характерные особенности Linux как ОС:

  • многозадачность (является обязательным условием);
  • многопользовательский режим;
  • защищенный режим процессора (386 protected mode);
  • защита памяти процесса (сбой программы не может вызвать зависания системы);
  • экономная загрузка: Linux считывает с диска только те части программы, которые действительно используются для выполнения;
  • разделение страниц по записи между экземплярами выполняемой программы. Это значит, что процессы-экземпляры программы могут использовать при выполнении одну и ту же память. Когда такой процесс пытается произвести запись в память, то 4-килобайтная страница, в которую идет запись, копируется на свободное место. Это свойство увеличивает быстродействие и экономит память;
  • виртуальная память со страничной организацией (т. е. на диск из памяти вытесняется не весь неактивный процесс, а только требуемая страница); виртуальная память в самостоятельных разделах диска и/или файлах файловой системы; объем виртуальной памяти до 2 Гб; изменение размера виртуальной памяти во время выполнения программ;
  • общая память программ и дискового кэша: вся свободная память используется для буферизации обмена с диском;
  • динамические загружаемые разделяемые библиотеки;
  • дамп программы для пост-мортем анализа: позволяет анализировать отладчиком не только выполняющуюся, но и завершившуюся аварийно программу;
  • сертификация по стандарту POSIX.1, совместимость со стандартами System V и BSD на уровне исходных текстов;
  • через iВS2-согласованный эмулятор совместимость с SCO, SVR3, SVR4 по загружаемым программам;
  • наличие исходного текста всех программ, включая тексты ядра, драйверов, средств разработки и приложений. Эти тексты свободно распространяются. В настоящее время некоторыми фирмами для Linux поставляется ряд коммерческих программ без исходных текстов, но все, что было свободным так и остается свободным;
  • управление заданиями в стандарте POSIX;
  • эмуляция сопроцессора в ядре, поэтому приложение может не заботиться об эмуляции сопроцессора. Конечно, если сопроцессор имеется в наличии, то он и используется;
  • множественные виртуальные консоли: на одном дисплее несколько одновременно независимых сеансов работы, переключаемых с клавиатуры;
  • поддержка ряда распространенных файловых систем (MINIX, Xenix, файловые системы System V); наличие собственной передовой файловой системы объемом до 4 Тб и с именами файлов до 255 знаков;
  • прозрачный доступ к разделам DOS (или OS/2 FAT): раздел DOS выглядит как часть файловой системы Linux; поддержка VFAT (WNT, Windows 95);
  • доступ (только чтение) к файловой системе HPFS-2 OS/2 2.1;
  • поддержка всех стандартных форматов CD ROM;
  • поддержка сети TCP/IP, включая ftp, telnet, NFS и т. д.

Рост популярности Linux побуждает разработчиков внимательнее присмотреться к этой операционной системе. В данный момент эта ОС готова к стабильной работе, а открытость ее исходных текстов и архитектуры наряду с растущей популярностью заставляет программистов переносить свои наработки на многие аппаратные платформы: SGI, IBM, Intel, Motorola и т. д.

Для задач РВ сообщество разработчиков Linux активно применяет специальные расширения - RTLinux, KURT и UTIME, позволяющие получить устойчивую среду реального времени. RTLinux представляет собой систему "жесткого" реального времени, a KURT (KU Real Time Linux) относится к системам "мягкого" реального времени. Linux-расширение UTIME, входящее в состав KURT, позволяет добиться увеличения частоты системных часов, что приводит к более быстрому переключению контекста задач.

RTLinux - это операционная система, в которой небольшое ядро реального времени сосуществует с Posix-like ядром Linux. Основная цель - сделать доступными сложные службы и оптимизированное поведение системы в стандартных ситуациях для системы с разделением времени, и, в то же время, выполнять задачи реального времени. В прошлом операционные системы реального времени примитивны - простые программы, которые предлагали пользователю чуть больше, чем просто библиотека основных функций. Но в наше время пользователи требуют доступ к TCP/IP, графическому дисплею и системе окон, базам данных и другим службам, которые не являются ни примитивными, ни простыми. Одно из решений - добавить non-real-time службы к базовому ядру реального времени, что и было проделано в VXworks и, немного по-другому, в микроядре QNX. Вторая возможность - модифицировать стандартное ядро и сделать его полностью прерываемым.

2.3.2 Организация RTLinux

RTLinux организован третьим способом, в котором простое ядро реального времени запускает обычное ядро как одну из задач реального времени с самым низким приоритетом, используя виртуальную машину для того, чтобы сделать стандартное ядро полностью прерываемым.

В RTLinux все прерывания обслуживаются ядром реального времени, а затем передаются стандартному ядру, но только в том случае, если нет необходимости запускать одну из задач реального времени. Для того чтобы минимизировать количество изменений в стандартном ядре, этот механизм реализован при помощи эмулирования ICH (Interrupt Control Hardware). Ядро реального времени и пользовательские задачи Linux могут обмениваться данными через неблокируемые очереди и сегменты разделяемой памяти.

С точки зрения программиста очереди выглядят как стандартные последовательные устройства UNIX, доступ к которым возможен при помощи системных вызовов POSIX read/write/open/ioctl. Разделяемая память доступна через системный вызов mmap.

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

Программа реального времени состоит из двух частей: задачи, которая представляет собой модуль ядра, и обыкновенный UNIX/Linux процесс и заботится об обработке данных, доступу к дисплею и сети и о любых других функциях, не требующих таких жестких временных рамок.

На практике оказалось, что идея RTLinux очень удачна. В самом худшем случае запаздывание прерываний на 486/33Mhz PC оказалось менее 30 мкс, что близко к аппаратному пределу. Для прикладных задач симбиоз систем реального времени и оптимизированной для "общего случая" оказался очень удачным. Наиболее часто используемая конфигурация RTLinux - примитивные задачи реального времени со статически распределяемой памятью без ее защиты, простым планировщиком с фиксированными приоритетами без защиты от нереализуемых планов, аппаратным запрещением прерываний, разделяемая память - единственный механизм синхронизации задач реального времени и ограниченный набором операций над FIFO-очередями, подсоединенными к обычным процессам Linux.

Ядро Linux позволяет в динамике загружать и выгружать модули ядра. Представив отдельные части ядра реального времени в виде модулей, легко изменять ядро реального времени. Уже написаны альтернативные планировщики и модуль семафоров. Во время работы системы можно загрузить модуль с задачами реального времени, затем выгрузить стандартный планировщик и загрузить, например, EDF планировщик. Можно пробовать разные комбинации модулей, пока не будет найдена оптимальная.

Этот вариант Linux позволяет выполнять задачи в реальном времени, что достигается путем вставки ядра реального времени между стандартным ядром Linux и аппаратными прерываниями и позволяет избавиться от главной причины непригодности Linux для задач реального времени - большого запаздывания прерываний.

С точки зрения RTLinux, Linux - одна из задач реального времени, имеющая самый низкий приоритет, может быть прервана, когда нужно. Такая структура накладывает некоторые ограничения на задачи реального времени. Они не могут легко использовать различные драйверы Linux, не имеют доступ к сети и т. д., но зато могут обмениваться данными с стандартными задачами Linux.

Простые очереди FIFO реализованы для обмена данными между процессами реального времени и процессами Linux. Типичное приложение состоит из двух частей - задачи реального времени, непосредственно работающей с аппаратурой, и, обычно, задачи Linux, которая выполняет остальные операции, такие как сохранение данных на диск, пересылка их по сети, работа с пользователем (GUI) и т. д.

Самый короткий период для периодически вызываемых задач реального времени в RTLinux на Pentium 120 - менее 150 мкс. Задачи, вызываемые по прерыванию, могут иметь намного меньший период.

Ядро реального времени не защищает от перегрузок. Если одна из задач реального времени полностью утилизирует процессор, ядро Linux, имея самый низкий приоритет, не получит управления и система повиснет. Задачи реального времени запускаются в адресном пространстве ядра с привилегиями ядра и могут быть реализованы, например, при помощи модулей Linux.

Необходимо отметить, что компания LynuxWorks начала поставки (17.05.2002) встраиваемой ОС BlueCat Linux для комплекта разработчика ПО Intel Internet Exchange Architecture Software Developers Kit (Intel IXA SDK) 2.0, предназначенного для семейства сетевых процессоров Intel IXP1200. ОС BlueCat Linux распространяется бесплатно совместно с Intel IXA SDK 2.0.

VxWorks давно стала де-факто стандартом для подавляющего большинства систем, использующих встроенные ОС. Флэш-память вычислительной системы IXP1200 содержит загрузчик ядра VxWorks. Для разработчиков это упрощает задачу написания новых программ. Кроме того, уже реализована возможность работы сетевого процессора под управлением ОС Linux (с расширениями реального времени). Осуществляется программная поддержка некоторыми производителями ОС Linux (например,LynuxWorks и т. д.).

2.4 Контроль и управление в реальном времени с использованием OS9

2.4.1 Введение

Для управления из единого центра одной или многими удалёнными установками и проверки их состояния фирма CS (Франция) разработала систему контроля. Она может применяться для управления энергетическими объектами, в системах кондиционирования воздуха, системах безопасности, технологических установках, сетях, промышленных конвейерах и уже внедрена на многих гражданских и военных объектах.

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

В системе контроля можно выделить два уровня:

  • Уровень 1 для сбора и обработки локальных данных;
  • Уровень 2 для сбора и анализа данных с удаленных объектов.


Рис.1. Общая концепция системы

Задачи на уровне 1 выполняются блоком GESCAP (например, рабочей станцией на процессоре 68010 фирмы Motorola с ОЗУ 1 Мбайт), а на уровне 2 - блоком GESVA (например, рабочей станцией на процессоре 68030 фирмы Motorola с ОЗУ 4 Мбайт). В блоках GESVA и GESCAP используется одна и та же операционная система (OS-9) и прикладное программное обеспечение. Различны только видеотерминалы и функциональные возможности. Благодаря этой однородности облегчается установка, использование и поддержание работоспособности системы.

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

Конфигурирование аналоговых или цифровых блоков ввода/вывода (аварийные сигналы, сообщения, приоритеты, и т.д.):

  • логические операции (И, ИЛИ ...) над входными данными;
  • установление соответствия разъёмов каждому устройству ввода/вывода;
  • перегруппировка устройств ввода/вывода;
  • графическое взаимодействие с элементами анимации.

Функции отображения состояния:

  • состояние блоков ввода/вывода, устройств, соединений, аварийных сигналов, бортовой журнал реального времени.

Графические функции:

  • автоматическое расположение аварийных сигналов в изображениях;
  • перемещение по изображениям источников данных;
  • отображение кривых в реальном времени;
  • видеоотображение кривых в реальном времени.

Функции связи:

  • протокол связи JBUS/MODBUS (RS-232/RS-422);
  • связь с системой помощи в локализации и устранении неисправностей (GESDOC).

Функции выдачи на печать:

  • распечатка структуры системы;
  • распечатка списка сигналов тревоги и событий.

Функции различного назначения:

  • интеграция новых задач с программным обеспечением, не требующая никаких изменений на уровне исходного кода.

2.4.2 Как развивалась эта прикладная система?

Основными требованиями к программному обеспечению были:

  • один и тот же состав прикладных программ и единый пользовательский интерфейс на различных платах и типах отображения;
  • быстрая развитая многооконная среда, расходующая как можно меньше памяти;
  • многозадачная, прошиваемая в ПЗУ операционная система реального времени с небольшими требованиями к объему памяти.

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

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

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

WINOTOOLS предоставляет следующие утилиты:

PAINT - объектно-ориентированный графический редактор для разработки пользовательских интерфейсов, пультов управления и диаграмм. PAINT разработан таким образом, чтобы его можно было настраивать и интегрировать в пользовательскую прикладную программу. Все файлы графических данных, созданные с помощью PAINT, могут целиком модифицироваться без обращения к исходным кодам (импортируются файлы в формате GIF).

SCRIPT - язык, позволяющий моделировать все диалоги с пользовательским интерфейсом до написания строки исходного кода. Эта утилита позволяет производить быструю проверку правильности пользовательского интерфейса.

DATABASE (БАЗА ДАННЫХ) - библиотека С-функций, обеспечивающая управление базой данных (соответствие данных и индексных файлов базы данных).

БИБЛИОТЕКА ВВОДА/ВЫВОДА - библиотека С-функций, обеспечивающая сопряжение пользовательского интерфейса с устройствами ввода/вывода.

2.5 Windows NT

2.5.1 Возможность использования Windows NT в качестве ОС реального времени

В последнее время приобретают популярность расширения реального времени для Windows NT. Это обусловлено с одной стороны - расширением областей применения компьютерного управления, с другой стороны - сравнительно малой известностью и высокой стоимостью специализированных операционных систем реального времени. Но даже если бы это было не так и о других системах было бы известно не меньше - все равно Win NT RTX была бы наиболее популярна. Ведь не даром соотношение пользователей ОС семейства Windows к пользователям Linux/Unix систем - 1000 к 1. Вполне логично, что человек, работая дома в одной системе, хочет видеть такую же, понятную ему удобную систему и на работе. Интерфейс Win32 является стандартным и хорошо знакомым большому числу программистов и пользователей. Под NT существует огромное число готовых приложений (в том числе коммуникационных), а также популярные средства разработки. К сожалению, Windows NT "в чистом виде" нельзя отнести к операционным системам реального времени. Обсуждению причин этого посвящены статьи Martin Timmerman и Jean-Christophe Monfret в Real-Time Magazine Q21997.

Вот некоторые из них:

  • недостаточное количество real-time приоритетов;
  • отсутствие наследования приоритетов, как средства борьбы с инверсией приоритетов;
  • неподходящая для RTOS система обработки прерываний.
  • В Windows NT доступ к прерываниям осуществляется из драйвера ядра, а сами прерывания обрабатываются в два этапа: сначала вызывается очень короткая Interrupt Service Routine (ISR), осуществляющая критическую обработку, основная обработка прерывания происходит в Deferred Procedure Call (DPC). Все DPC выполняются с одинаковым уровнем приоритета в порядке поступления (FIFO).

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

2.5.2 RTX - real-time extension для Windows NT от компании VenturCom

Одним из возможных решений является использование совместно с Windows NT подсистемы реального времени, исполняющейся на том же процессоре (если процессор один) или на выделенном процессоре(-ах) (если их несколько). Этот подход использован фирмой VenturCom в продукте RTX. Сущность подхода заключается в использовании модифицированного HAL (Hardware Abstraction Level). Изменять kernel Microsoft не разрешает, а исходный код HAL предоставляет своим партнерам, одним из которых является VenturCom.

После установки RTX стандартная NT Workstation или Server превращается в операционную систему реального времени с жестким детерминизмом (hard real-time). Сама NT об этом, правда, не подозревает. Ни ядро, ни исполняющая подсистема NT не были изменены. Подсистема реального времени видна из Windows NT как еще один драйвер устройства.

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

  • прикладной программный интерфейс (API) Win32 на данный момент является для программистов стандартом де-факто;
  • графический интерфейс пользователя (GUI-интерфейс) популярен настолько, что GUI-интерфейсы других операционных систем начинают на него походить все больше;
  • разработано огромное количество драйверов независимых производителей;
  • разработано множество очень мощных интегрированных инструментальных пакетов (IDE).

2.5.3 Windows NT 4.0 как ОСРВ. Общие требования

Чтобы называться ОСРВ, операционная система должна удовлетворять некоторому минимальному набору требований, которые необходимы, но недостаточны. В самом начале своей работы я это указывал, но повторимся еще раз:

  • операционная система должна поддерживать многопоточность (многонитиевость - multithreaded) и вытеснение задач по приоритетам (preemptable);
  • должно существовать понятие приоритета потока (нити);
  • операционная система должна поддерживать механизмы синхронизации исполнения потоков (нитей) с предсказуемыми характеристиками;
  • должен иметься механизм наследования приоритетов;
  • поведение операционной системы должно быть известным и предсказуемым (внутренние задержки прерываний, задержки переключения задач, задержки драйверов и т.д.).

Первому требованию Windows NT явно удовлетворяет. Второму - тоже, но для режима реального времени уровней приоритета маловато. Практически невозможно спроектировать хорошую систему реального времени, например, с диспетчеризацией в зависимости от частоты (rate-monotonic scheduling), поскольку доступного количества приоритетных уровней исполнения потоков не хватит. Кроме того, в NT отсутствует механизм наследования приоритетов.

Для обработки прерываний с целью минимизации затрат времени на подпрограммы обслуживания прерываний (ISR-подпрограммы) в NT была введена концепция отложенных вызовов процедур (deferred procedure calls - DPC). Хотя приоритет этих вызовов выше, чем приоритет пользовательских и системных потоков, все они находятся на одном и том же уровне. Это означает, что все DPC-вызовы выстраиваются в FIFO-очередь и что прерывание высокого уровня будет обслужено только тогда, когда свое исполнение завершат все предшествующие ему DPC-вызовы. Вследствие этого, время отклика системы становится непредсказуемым, что противоречит пятому требованию.

В NT в основе управления памятью лежит механизм виртуальной памяти. Это влечет за собой защиту памяти, преобразование адресов и подкачку (свопинг). Для приложений РВ свопинг неприемлем. Страницы памяти могут быть заблокированы в физической памяти. Однако Джеффри Рихтер (Jeffrey Richter) в своей книге [Richter95] утверждает, что, если процесс не активен, NT может разблокировать страницы процесса и переписать их из физической памяти на диск.

ПРИМЕЧАНИЕ

Windows NT в "чистом виде" подходит разве что для систем мягкого РВ для применения в приложениях реального времени.

2.5.4 Расширения реального времени для Windows NT. Расширение функциональности

Расширения реального времени добавляют к Windows NT специфическую для реального времени функциональность:

  • Появляются процессы реального времени, управляемые собственным планировщиком. Этот планировщик работает уже по всем правилам планировщиков реального времени и использует алгоритм вытеснения по приоритетам. Кроме того, процессы реального времени имеют преимущество перед стандартными процессами Win32, вытесняя их. Процессы реального времени имеют совсем иную, по сравнению со стандартными процессами Windows NT, степень надежности и специфическую функциональность.
  • Процессы реального времени и стандартные процессы Win32 имеют средства взаимодействия друг с другом.
  • Процессы реального времени имеют свой собственный программный интерфейс RTAPI, реализующий развитый набор средств, характерный для программных интерфейсов (API) операционных систем реального времени.
  • Одно и то же приложение может использовать как стандартные функции Win32, так и специфические функции API реального времени (RTAPI), что позволяет выделять критические участки кода приложений Windows NT и контролировать время и надежность их выполнения.
  • Появляется возможность контроля за работоспособностью и временами реакции системы. "Зависания" стандартных приложений Windows NT или "крах" системы не приводят к "зависанию" приложений реального времени.
  • Появляется возможность работы с быстрыми часами и таймерами высокого разрешения.
  • Появляется возможность прямого доступа к памяти и физическим устройствам

2.5.4.1 Подсистема реального времени RTSS

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

Управление объектами RTSS: Предоставляет возможности унифицированного управления объектами RTSS (создание,закрытие,доступ). Объектами RTSS являются: таймеры, обработчики прерываний и исключительных ситуаций (startup, shutdown, blue screen), нити, процессы, семафоры, мьютексы, разделяемая память, почтовые ящики, консольный и файловый ввод-вывод, регистры.

2.5.4.2 HAL реального времени

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

2.5.4.3 Программный интерфейс реального времени RTAPI

Программный интерфейс реального времени RTAPI является расширением Win32 и содержит, прежде всего, набор функций, необходимых для управления устройствами. RTAPI реализован в двух видах - как подмножество подсистемы реального времени (RTSS) и как динамическая библиотека (DLL), которая может вызываться из Win32-приложений. RTAPI содержит следующие группы функций:

  • Управление процессами и нитями: Предоставляет Win32-совместимый интерфейс для управления, создания, изменения приоритетов, профилирования и завершения нитей реального времени.
  • Взаимодействие между процессами: RTAPI использует семафоры, мьютексы и разделяемую память для взаимодействия как нитей реального времени между собой, так и для взаимодействия процессов реального времени с процессами WIN32.
  • Управление памятью: Позволяет фиксировать приложения в памяти, запрещая их выгрузку в файл подкачки.
  • Доступ к физической памяти: Приложение пользователя получает возможность доступа к данным по физическим адресам памяти.
  • Управление прерываниями: Содержит функции, позволяющие назначать и запрещать обработчики прерываний, разрешать и запрещать прерывания.
  • Часы и таймеры: Содержит функции управления часами и таймерами (создание, удаление, отмена, инициализация таймеров, назначение обработчиков прерываний)

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

3. ОС РВ используемые в современных системах ЧПУ

В настоящее время многие ОС РВ показывают близкие значения показателей эффективности, поэтому одним из наиболее важных условий успеха операционной системы (наряду с высокой производительностью) является наличие в ней развитой среды разработки, графических интерфейсов, сетевой поддержки; возможность работы на многопроцессорных средствах. Среди наиболее известных ОС РВ для систем ЧПУ можно выделить:

  • Windows NT4;
  • RTMX (фирма RTMX-Uniflex);
  • AMX (фирма Kadak Products Ltd.);
  • OS-9000 (фирма Microwave Systems);
  • OS-9;
  • VxWorks;
  • pSOS+;
  • Lynx OS (фирма Lynx Real-Time Systems);
  • VRTX (фирма Ready Systems);
  • FlexOS (фирма Novell Dedicated Sys Bus Unit);
  • QNX (фирма Quantum Software Systems)
  • ОС РВ собственной разработки.
  • Nucleus
  • WinPCNC
  • OSE

3.1 ОС РВ собственной разработки

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

3.2 FlexOS

В настоящее время используется очень редко. Эта операционная система была современной и популярной, а сейчас является скорее устаревшей. У Siemens была своя операционная система FlexOS, свои языки, полевые шины. Потом Siemens провозгласил своим принципом открытость. Фактическим стандартом для более раннего Siemens'а и вообще программного обеспечения АСУТП разных фирм стала операционная система Windows NT, позволившая использовать в программном обеспечении весь багаж, накопленный в офисных системах.

3.3 QNX

Эта операционная система предназначена не только для персональных компьютеров, но и для самых разных бытовых и промышленных интеллектуальных устройств - систем, управляющих технологическими процессами, станков с ЧПУ, интернет-приставок, видеовоспроизводящих агрегатов, игровых консолей. Данная ОС во многом весьма примечательна и уникальна. В 1982 году в Канаде фирма "Quantum Software Systems, Limited" - QSSL, созданная г-ми Беллом и Доджем (Gordon Bell & Dan Dodge), представила миру новейшую многозадачную многопользовательскую операционную систему реального времени "Quick UNIX", разработка которой, как говорят, началась по заказу Министерства обороны Соединенных Штатов. Это была UNIX-подобная операционная система, вернее, совместимая со стандартом на переносимость приложений POSIX, в соответствии с которым сделаны также UNIX и его популярный клон Linux.

3.4 Windows XP

Как бы странно это ни прозвучало, но бывает, что Windows XP используется в качестве графического интерфейса оператора, а специальная операционная система в реальном времени используется для безопасности обеспечения функций ЧПУ. В случае возникновения проблемы на XP (напр. с подключением к сети) это никак не отразится на обработке или на самом станке, т.к. ЧПУ работает в своей операционной системе.

3.5 Windows NT4

Общепризнанно, что это надежная, многозадачная сетевая ОС, и что очень важно, имеет интерфейс Windows 95, для многих ставшим родным. Многие фирмы при разработке своих систем ЧПУ используют именно ее:

  • Например фирма Walter Grinders оснащает станки модели Helitronic_Power собственной открытой системой ЧПУ (тип HMC 500). В системе ЧПУ типа HMC 500 используется процессор типа Pentium, операционная система Windows NT и программое обеспечение Walter Window Mode. Программное обеспечение Walter Window Mode - собственная разработка фирмы Walter Grinders.
  • Система WinPCNC является однокомпьютерной системой ЧПУ, построенной на мощной платформе персонального компьютера с операционной системой Windows NT и расширением реального времени RTX 4.1. Она относится к классу PCNC (Personal Computer Numerical Control), т.е. к классу так называемых "персональных систем управления", который справедливо считают сегодня наиболее перспективным классом систем ЧПУ нового поколения. Система использует единственный процессор для обслуживания всех ее функций, включая функции электроавтоматики. Аппаратная часть представлена стандартной аппаратурой персонального компьютера и дополнительными интерфейсными модулями для связи со следящими приводами подачи и главного движения, приводами электроавтоматики, панелью оператора. Все эти средства доступны сегодня на компьютерном рынке, а следовательно отсутствует необходимость в организации специального производства систем ЧПУ.

Конечно, хотелось бы иметь в качестве ОС РВ Windows NT. Но может ли потянуть Windows NT сегодня, даже с расширением реального времени (Real-Time Extensions) задачи, которые всегда решали ОС РВ? Многочисленные тесты показали, что на типовых компьютерных платформах на базе процессоров Pentium максимальное время реакции на прерывание (начиная от возникновения прерывания до входа в нить обработки, включая восстановление контекста) составляет 25-80 мкс, при условии значительной загрузки тестируемой системы: проверка диска (chkdsk), GUI приложения и интенсивный сетевой обмен. Эти цифры сравнимы с теми, что обеспечивают другие ОС РВ и превосходят некоторые из них.
Учитывая вышесказанное, имеет смысл начать поиск удачного решения Real-Time Extensions для Windows NT. Нужно сказать, что Windows NT не является открытой системой, и заранее ясно, что проекты Real-Time Extensions сторонних фирм будут только надстройками, не меняющими сути ОС.

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

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

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

3.6 Windows CE 2.0 - открытые системы ЧПУ

Фирма GE Fanuc Automation подготовила к выпуску системы ЧПУ серии Is - первые в мире открытые системы ЧПУ со встроенной операционной системой Windows CE 2.0. В серию входят три модели: мод. Series 160 Is, мод. Series 180 Is и мод.Series 210. Системы ЧПУ серии Is могут использоваться для управления металлорежущими станками различных типов, начиная от 2-координатных токарных станков и заканчивая 5-координатными обрабатывающими центрами, установками для лазерной резки, дыропробивными прессами и т.п.

Операционная система Windows CE 2.0 предназначена, как известно, для карманных компьютеров и поэтому отличается очень малым размером. Вместе с тем, ее возможностей вполне достаточно для реализации функций, которыми должны обладать современные открытые системы ЧПУ. Благодаря малому размеру ОС Windows CE 2.0, в системах ЧПУ серии Is удалось отказаться от жесткого диска. Для хранения операционной системы и управляющих программ используется флеш-память емкостью 45 мбайт. Отсутствие у систем ЧПУ серии Is жесткого диска делает их чрезвычайно устойчивыми к механическим воздействиям, которые трудно исключить при транспортировке и эксплуатации в условиях реального производства.

3.7 Nucleus

Операционная система Nucleus, предназначенная для встраиваемых приложений, была разработана компанией Accelerated Technology Inc. (ATI, США), основанной в 1990 г. двумя программистами. Они ставили перед собой вполне конкретную цель: создать очень компактную ОС реального времени для встраиваемых систем, независимую от типа процессора, полностью открытую (что подразумевает поставку с исходными текстами), хорошо документированную и имеющую приемлемую цену.
Если Nucleus сравнить, например, с такой известной ОС РВ QNX, то нетрудно заметить ряд их различий.

Nucleus является кросс-системой, в то время как QNX - одновременно и средой разработки, и средой исполнения. Под кросс-системой понимается такая технология разработки, при которой ПО создается на одной программно-аппаратной платформе, а исполняется на другой. Совмещение в QNX среды разработки и среды исполнения очень полезно в тех случаях, когда пользователь работает на IBM PC-совместимой архитектуре.

Nucleus позволяет разрабатывать ПО для многих процессоров, а QNX - только для IBM PC-совместимых.

В отличие от QNX, в поставку Nucleus входят исходные тексты. Это особенно важно для военных, так как наличие полных исходных текстов облегчает сертификацию созданного приложения.

Приобретая Nucleus, покупатель оплачивает ее только один раз: за тиражирование своего ПО фирма ATI дополнительной платы не взимает. Стоимость этой ОС вместе с необходимыми инструментальными средствами составляет 10-30 тыс. долл. При покупке QNX пользователь должен заплатить за полную систему (около 2500 долл. за ОС и компилятор Watcom C), а при тиражировании ПО - покупать у фирмы QSSL по крайней мере модульные лицензии за необходимый набор драйверов (от 50 до 1000 долл.).

QNX 4.x удовлетворяет стандарту POSIX 1003. Nucleus не отвечает этому стандарту, но он обладает достаточно мощным набором системных вызовов.

3.8 OSE 5.0

Sharp Microelectronics и Enea Embedded Technology сотрудничают при оптимизации BlueStreak System-on-Chip компонентов, специально примененяемых в мобильных конечных устройствах.

В первом проекте фирма Enea размещает версию 5.0 операционной системы реального времени OSE (RTOS) на 32-разрядном микроконтроллере LH7A400. Эта System-on-Chip, базирующаяся на ядре ARM922TT 200 мегагерц, уже включает в себя многочисленные периферийные модули, такие как USB Device, MultimediaCard Interface, внешний контроллер DMA, последовательные и параллельные интерфейсы, включая поддержку инфракрасного порта, а также программируемые контроллеры с прямыми интерфейсами жидкокристаллических дисплеев для всех распространенных типов дисплеев (STN, Color STN, TFT и Sharps Advanced-TFT ). При этом поддерживаются разрешения до 1024x768 пикселей, с числом цветов до 64.000 и с 15 полутонами. Таким образом, BlueStreak SoC LH7A400 предназначен для использования в качестве процессора в мобильных High-End-устройствах.

3.9 OS-9

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

3.10 VxWorks/Tornado

Операционная система 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 и др.

3.12 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, позволяющие системе работать без дисплея и клавиатуры.

3.13 Falcon

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

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

4. Обзор ЧПУ

Ниже приведена таблица соответствия - в каких современных ЧПУ, какие операционные системы используются.

Система ЧПУОперационная система
Siemens GmbH
840 D/ 810 DWindows/UNIX Real Time
840 DiMS Win NT/ XP + RTX
802 DReal Time DOS
802 S/CОперационная система собственной разработки
GE Fanuc
0T-D, 1018T, 3000C, 6M, 7,SYS P - Model EQNX 6.2Windows NT
160i-MBWindows 2000 (ISO-DIN программируемая)
Series 210 IsWindowes CE 2.0
Series 180 IsWindowes CE 2.0
Series 160 IsWindowes CE 2.0
Балт-Систем СПб
NC201Операционная система собственной разработки (нет информации)
NC110Операционная система собственной разработки(нет информации)
NС210Операционная система собственной разработки(нет информации)
MSH
MSH PC-104MS Win NT/ XP + RTX
MSH TURBO-UMS Win NT/ XP + RTX
MSH TURBO-MMS Win NT/ XP + RTX
MSH TURBO-120MMS Win NT/ XP + RTX
FMS
FMS-3000 - Н.НовгородПрограммное обеспечение системы реализовано на базе ядра жесткого реального времени с использованием библиотеки RT-Kernel,
FMS-3100 - Н.НовгородПрограммное обеспечение системы реализовано на базе ядра жесткого реального времени с использованием библиотеки RT-Kernel,
Heidenhain (Германия)
TNC 145TNC 151TNC 155TNC 355TNC 4110TNC 426TNC 530Используются следующие ОС:QNX 6.2DOSWindowsUnixLinux
Gildemeister
Eltra PilotEltra-pilot GD-4AWindows NT4
MAHO (Германия)
MAHO 332MAHO 432MS DOS, MS Windows 3.x
NCT
NCT 2000Linux RT или Windows RT
Numerik
CNC 600CNC 645CNC 646Windows NT4
WinPCNCодно-компьютерная система ЧПУ, построенная на платформе персонального компьютера с ОС Windows NT и расширением реального времени RTX 4.1 фирмы VentureCom
КРТ4-00 - КонтурТерминальная частьMS Win NT/ XP + RTX

5. Выводы

Так какую ОС выбрать? Если рассматривать двухпроцессорную архитектуру ЧПУ, то на модуль РС, выполняющий терминальную задачу, лучше установить надёжную ОС с удобным интерфейсом (Windows NT), а на модуль NC, решающий геометрическую и логическую задачи, поставить ОС РВ, допустим QNX, которая хорошо структурирована, имеет развитый набор специфических механизмов реального времени, компактна и предсказуема.
Вычислительные мощности современных персональных компьютеров постоянно растут, и сегодня реально построение однопроцессорной системы ЧПУ. Для ее реализации необходимо объединить две задачи, PC и NC, под управлением единой ОС.

Нельзя сказать однозначно, какие ОС используют фирмы-поставщики ЧПУ при их создании. Т.е. нельзя выделить какую-то определенную систему среди прочих. Выбор Ос зависит от задач, которые она должна решать и от материальной обеспеченности конечного пользователя. Даже в рамках одной фирмы можно встретить большое количество различных СРВ.

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

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

6. Используемая литература

  • Timmerman M., Monfret J-C., "Windows NT as Real-Time OS?", Real- Time Magazine 2/97, 6-13
  • Сорокин С.А. Системы реального времени. СТА. 1997, №2, с. 22-29
  • Шалунов С. ОС Hurd - разработка FSF на основе микроядра. Открытые системы. 1997. №3
  • Володин С.В., Макаров А.Н., Утрихин Ю.Д., Фараджаев В.А. Общесистемное проектирование АСУ реального времени. М. 1984
  • Место систем отображения информации в АСУ реального времени.
  • Windows NT Real-Time Extensions : an Overview, Real-Time Magazine, 97Q2, Dr. ir. Martin Timmerman, Managing Director, Jean-Christophe Monfret, Project Manager, Real-Time Consult.
  • RTX 4.2 for Windows NT User's Guide
  • Рихтер Дж. Windows для профессионалов. Третье издание. Microsoft Press /Русская редакция. 1997
  • Custer H. Inside Windows NT. Second Edition. Microsoft Press. 1998.
  • А. Калядин Windows NT для встраиваемых приложений. Открытые системы. N 2(28) 1998.
  • А. Жданов Продолжая разговор о расширениях реального времени для Windows NT. Мир компьютерной автоматизации. N 2 1998. стр. 83-87
  • А. Рыбаков, А. Жданов Windows NT во встраиваемых, промышленных и коммуникационных приложениях. PCWEEK, Russian Edition N 27-28(151-152) 14-27 июля 1998
  • http://z3950.library.isu.ru/citforum/operating_systems/rtx/index.html
  • А. Жданов "Что день грядущий нам готовит? (В связи с появлением Windows NT на рынке OCРВ)", МКА 4 1997.
  • http://www.mka.ru/?p=41325
  • http://dvo.sut.ru/libr/skiri/i277zaru/ob.htm
  • Siemens, Автоматизация и приводы (A&D) http://www.aud.ru/
  • http://www.ncsystems.ru/ru/education/lectures/posu/
  • Сосонкин В.Л., Мартинов Г.М. Aнализ современного мирового уровня архитектурных решений в области ЧПУ
  • Мартинов Г.М., Сосонкин В.Л. Проблема реального времени
  • http://www.belsoft.by/products/asutp/software/rtx.htm
  • http://dnc.cals.ru/systems/cnc_t.htm

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