Учебная работа. Реферат: Общее описание операционных систем реального времени
1. Общее описание операционных систем настоящего времени. 3
1.1 Что такое система настоящего времени. 4
1.2 Главные требования к СРВ.. 5
1.3 Общие свойства СРВ.. 5
1.4 методы использования ОС.. 5
1.5 Требования, предъявляемые ОС при проектировании ОСРВ.. 6
1.5.1 Требование 1. ОС обязана быть многонитевой (multi-threaded) и прерываемой. 6
1.5.2 Требование 2. Обязано существовать понятие приоритета нити. 6
1.5.3 Требование 3. ОС обязана обеспечивать прогнозируемые механизмы синхронизации задач. 6
1.5.4 Требование 4. Обязана существовать система наследования ценностей. 6
1.5.5 Требование 5. времени. 7
2.1 QNX7
2.1.1 Проф пакет. 8
2.1.2 Рабочая станция. 9
2.2 VxWorks/Tornado. 10
2.2.1 Базисные сетевые средства VxWorks: UNIX-networking, SNMP и STREAMS.11
2.2.2 мониторинг и отладка в настоящем масштабе времени: WindView.11
2.3 RTLinux. 12
2.3.1 Главные трудности при реализации систем настоящего времени в среде LINUX.. 12
2.3.2 Организация RTLinux. 13
2.4 Контроль и управление в настоящем времени с внедрением OS9. 14
2.4.1 Введение. 14
2.4.2 Как развивалась эта прикладная система?. 15
2.4.3 Утилиты WINOTOOLS:15
2.5 Windows NT. 16
2.5.1 Возможность использования Windows NT в качестве ОС настоящего времени. 16
2.5.2 RTX — real-time extension для Windows NT откомпании VenturCom.. 16
2.5.3 Windows NT 4.0 как ОСРВ. Общие требования. 17
2.5.4 Расширения настоящего времени для Windows NT. Расширение функциональности. 17
2.5.4.1 Подсистема настоящего времени RTSS. 17
2.5.4.2 HAL настоящего времени. 18
2.5.4.3 Программный интерфейс настоящего времени RTAPI. 18
3. Литература. 19
1. Общее описание операционных систем настоящего времени
Основой хоть какого аппаратно-программного комплекса, в том числе работающего в режиме настоящего времени, является операционная система (ОС). Операционной системой именуют комплекс программ, обеспечивающий управление ресурсами аппаратно-программного комплекса (вычислительной системы) и действиями, использующими эти ресурсы при вычислениях. Ресурсом в данном контексте является хоть какой логический либо физический (и в совокупы) компонент вычислительной системы либо аппаратно-программного комплекса и предоставляемые им способности.
Главными ресурсами являются микропроцессор (процессорное время), оперативка и периферийные устройства.
Управление ресурсами сводится к выполнению последующих задач: упрощение доступа к ресурсам, распределение их меж действиями.
Решение первой задачки дозволяет «упрятать» аппаратные индивидуальности вычислительной системы, и тем предоставить в распоряжение юзеру либо программеру виртуальную машинку с значительно облегченным управлением. Таковым образом, ОС поддерживает последующие интерфейсы: пользовательский (командный язык для управления функционированием системы и набор сервисных услуг); программный (набор услуг, освобождающий программера от кодировки рутинных операций).Функция распределения ресурсов является одной из более принципиальных задач, решаемых ОС, но она присуща не многим ОС, а лишь тем, которые обеспечивают одновременное выполнение нескольких программ (действий).
Действием именуется последовательность действий, предписанных программкой либо ее логически законченной частью, также данные, применяемые при вычислениях. процесс является малой единицей работы, для которой выделяются ресурсы.
В истинное время существует огромное обилие ОС, которые классифицируются по последующим признакам:
o количество юзеров, сразу обслуживаемых системой;
o число действий, которые могут сразу производиться под управлением ОС;
o тип доступа юзера к системе;
o тип аппаратно-программного комплекса.
В согласовании с первым признаком различаются одно- и многопользовательские ОС.
2-ой признак разделяет ОС на одно- и многозадачные.
В согласовании с третьим признаком ОС делятся на:
o системы с пакетной обработкой. В этом случае из программ, подлежащих выполнению, формируется пакет, который предъявляется системе для обработки. В этом случае юзеры конкретно с ОС не ведут взаимодействие;
o системы разделения времени, обеспечивающие одновременный интерактивный доступ к вычислительной системе нескольких юзеров через терминалы. При всем этом ресурсы системы выделяются любому юзеру «по очереди», в согласовании с той либо другой дисциплиной обслуживания;
o системы настоящего времени, которые должны обеспечивать гарантированное время ответа на наружные действия (наиболее тщательно см. ниже).
4-ый признак разделяет ОС на одно- и многопроцессорные, сетевые и распределенные. Для многопользовательских и многозадачных ОС принципиальным показателем является дисциплина обслуживания. В согласовании с сиим различают вытесняющий и согласующий режимы многозадачной работы. При вытесняющей организации выделением задачкам процессорного времени занимается лишь ОС (к примеру, для каждой задачки микропроцессор выделяется по очереди, при этом на строго фиксированный просвет времени, но может быть и приоритетное сервис). В случае согласующей организации любая задачка, получив управление, сама описывает, когда ей «дать» машина — комплекс технических средств, предназначенных для автоматической обработки информации в процессе решения вычислительных и информационных задач) (либо вычислительной системы) которое делает арифметические и логические операции данные программкой преобразования инфы управляет вычислительным действием и коор иной задачке. В общем случае согласование эффективнее и надежнее вытеснения, но определяющим фактором при реализации программ становится тот факт, что данная программка не обязана монопольно применять процессорное время.
Система настоящего времени (СРВ)
— это система, корректность функционирования которой зависит не только лишь от логической правильности вычислений, да и от времени, за которое эти вычисления выполняются.
Для событий, происходящих в таковой системе, принципиально время, когда эти действия происходят, и их логическая правильность. Система работает в настоящем времени, если ее быстродействие правильно скорости протекания физических действий на объектах контроля либо управления (имеются в виду процессы, конкретно связанные с функциями, выполняемыми определенной системой настоящего времени). Система управления обязана собрать данные, произвести их обработку по данным методам и выдать управляющее действие за таковой просвет времени, который обеспечивает успешное выполнение намеченных целей.
1.1 Что такое система настоящего времени
В крайнее время все почаще приходится сталкиваться с задачками, требующими управления сложными действиями либо оборудованием с помощью ЭВМ . При всем этом все действия в этих действиях происходят тогда, когда они происходят. комп же может делать только конечное число операций в конечное время, потому возникает вопросец: а успеет ли комп с подходящей скоростью обсчитать ситуацию и выдать определенные управляющие деяния, которые могли быть адекватны конкретно в определенный момент времени. На мой взор, задачи подобного рода появились из-за использования весьма огромных скоростей в современном производстве. ясно, что сигналы в природе распространяются с конечной скоростью, скорость работы тоже конечна, потому моментальных действий (вызванных некоторым событием) от компа ждать принципно нереально. Ведь каким бы современным (читай — массивным по производительности, т.е. высочайшей скоростью обработки установок и операций) комп бы ни был — ему на физическом уровне необходимы хотя бы толики секунды, чтоб выполнить маленькую ординарную группу установок, а время от времени этого времени очень много. Таковым образом, время реакции системы на некое событие строго больше нуля. Настоящие задачки допускают некого запаздывания действий, и если система имеет время реакции меньше, чем эта допустимая задержка, то ее справедливо именовать системой настоящего времени. Потому что в природе различные процессы протекают с разной скоростью, одна и таже система может улечся в данные рамки для 1-го процесса и не улечся для другого. Таковым образом, о системе настоящего времени имеет смысл гласить применительно к определенной задачке. к примеру, чтоб выстроить зависимость средней температуры воздуха за денек от денька недельки в качестве системы настоящего времени сойдет фактически хоть какой комп с фактически хоть каким ПО . Если же мы управляем высадкой самолета, где существенную роль играют миллисекунды, было бы наиболее верно пристально выбирать аппаратное и программное обеспечение.
Не считая рассмотренной задачки реагирования на некое событие, есть еще остальные классы задач настоящего времени. Одной из нередко встречаемых является задачка неизменного наблюдения либо управления динамическим действием, т.е. когда требуется безпрерывно обмениваться сигналами с наружным миром. комп — дискретная система, потому приходится производить некие деяния с некими конечными промежутками времени, считая, что в эти малые промежутки времени наружный мир остается постоянным. Если наша система способна обрабатывать информацию и выдавать управляющие сигналы с требуемой частотой, то ее можно именовать системой настоящего времени. Несложно осознать, что эту задачку просто свести к предшествующей, используя в качестве действия начало еще одного интервала времени. Время реакции обязано быть меньше времени дискретизации процесса. Таковым образом, описанная ранее задачка является более принципиальной, когда речь идет о системах настоящего времени. Необходимо подчеркнуть, что неудовлетворительная по запаздыванию работа системы в неких задачках может привести к фатальным последствиям, а в неких не произойдет никаких внештатных и ненужных ситуаций. к примеру: если система измерения температуры из описанного чуть повыше примера случаем запоздает на непозволительное время, то это означает, что мы просто изменили подборку точек съема температуры, и все равно получим верный итог, если же на секунду случаем задержится автомат захода на высадку в пассажирском самолете при неожиданном порыве ветра, самолет может не попасть на полосу и 10-ки людей погибнут. Таковым образом, следует разделять системы на системы твердого и мягенького настоящего времени.
Системой твердого настоящего времени
именуется система, где неспособность обеспечить реакцию на какие-либо действия в данное время является отказом и ведет к невозможности решения поставленной задачки. время реакции в системах твердого настоящего времени обязано быть наименьшим. Большая часть систем твердого настоящего времени являются системами контроля и управления. Такие СРВ сложны в реализации, потому что к ним предъявляются особенные требования в вопросцах сохранности.
Четкого определения мягенького настоящего времени
не существует, потому можно отнести сюда все СРВ, не подпадающие под категорию твердых. Так, система мягенького настоящего времени может не успевать все созодать в данное время, потому возникает неувязка определения критериев удачливости (нормальности) ее функционирования.
Не считая того, СРВ можно поделить на системы спец и всепригодные.
o Спец СРВ
— система, где определенные временные требования вначале определены. Таковая система обязана быть специально спроектирована для ублажения этих требований.
o Всепригодная СРВ
обязана уметь делать произвольные (заблаговременно неопределенные) временные задачки без внедрения специальной техники. Разработка таковых систем является самой сложной задачей, хотя обычно, требования, предъявляемые к таковым системам, мягче, чем требования к спец системам.
1.2 Главные требования к СРВ
o возможность параллельного выполнения нескольких задач;
o предсказуемость;
o принципиально наибольшее (не среднее) время отклика на событие;
o особенные требования в вопросцах сохранности;
o возможность неотказной работы в течение долгого времени.
1.3 Общие свойства СРВ
o огромные и сложные системы;
o распределенные системы;
o твердое взаимодействие с аппаратурой;
o выполнение задач зависит от времени;
o сложность тестирования.
СРВ должны реагировать на разные типы внутренних и наружных событий (повторяющихся и непериодических). Нужно отметить, что принадлежность системы к классу СРВ никак не связана с ее быстродействием. Начальные требования к времени реакции системы и остальным временным характеристикам определяются либо техническим заданием на систему, либо просто логикой ее функционирования. Интуитивно понятно, что быстродействие СРВ обязано быть тем больше, чем больше скорость протекания действий на объекте контроля и управления.
1.4 методы использования ОС
Традиционная ОС. Win NT, Linux и unix.
Традиционная ОС с расширением РВ (Win NT — RTX, RT Linux, RT unix)
Коммерческая ОС. Примером могут служить такие системы как VxWorks, OS9 и т.п. Нужно отметить, что такие системы весьма дорогие. К примеру, стоимость полного пакета ОС VxWorks (Tornado 1.0) в 2002 году составляла около 15 000 баксов США
Для наиболее детализированного рассмотрения способностей ОСРВ представлены приблизительные числа, дающее машина — комплекс технических средств, предназначенных для автоматической обработки информации в процессе решения вычислительных и информационных задач) (либо вычислительной системы) которое делает арифметические и логические операции данные программкой преобразования инфы управляет вычислительным действием и коор на нынешний денек является устаревшим, но можно создать выводы о уровне реакции на наружные действия разных систем
РВ.время реакции
Использованные ОС
Наименее 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-ое требование заключается в том, что ОС обязана быть многонитевой по принципу абсолютного приоритета (прерываемой). Планировщик должен иметь возможность оборвать всякую нить и предоставить ресурс той нити, которой он наиболее нужен. ОС (и аппаратура) должны также обеспечивать прерывания на уровне обработки прерываний.
1.5.2 Требование 2. Обязано существовать понятие приоритета нити
Неувязка в том, чтоб найти, какой задачке требуется ресурс. В безупречной ситуации ОСРВ дает ресурс нити либо драйверу с наиблежайшим последним сроком (так именуемые ОС, управляемые временным ограничением (deadline driven OS)).
Чтоб воплотить это, ОС обязана знать время, требуемое каждой из выполняющихся нитей для окончания (до сего времени не существует ОС, построенной по этому принципу, потому что он очень сложен для реализации), потому создатели ОС принимают иную точку зрения: вводится понятие уровня приоритета задачки, и временные ограничения сводят к ценностям. Потому что умозрительные решения чреваты ошибками, характеристики СРВ при всем этом понижаются. Чтоб наиболее отлично выполнить обозначенное преобразование ограничений, проектировщик может пользоваться теорией расписаний либо имитационным моделированием, хотя и это может оказаться никчемным. На нынешний денек не имеется другого решения, потому понятие приоритета нити нужно.
1.5.3 Требование 3. ОС обязана обеспечивать прогнозируемые механизмы синхронизации задач
задачки делят данные (ресурсы) и должны сообщаться друг с другом, как следует, должны существовать механизмы блокирования и коммуникации.
1.5.4 Требование 4. Обязана существовать система наследования ценностей
По сути конкретно этот механизм синхронизации и тот факт, что разные нити употребляют одно и то же место памяти, различают нити от действий. Процессы не делят одно и то же место памяти. Так, к примеру, старенькые версии unix не являлись многонитевыми. Старенькый unix — многозадачная ОС, где задачками являются процессы, которые сообщаются через потоки (pipes) и разделяемую память. Оба эти механизма употребляют файловую систему, а ее время, нужное для окончания нити высшего приоритета, зависит от нижних приоритетных уровней — это и есть инверсия ценностей. ясно, что в таковой ситуации тяжело выдержать ограничение на время выполнения.
Чтоб убрать такие инверсии, ОСРВ обязана допускать наследование приоритета, т. е. увеличение приоритета до уровня вызывающей нити. Наследование значит, что блокирующая ресурс нить наследует Ценность блокируемой нити (справедливо только в том случае, если блокируемая нить имеет наиболее высочайший Ценность). Время от времени говорят, что в хорошо спроектированной системе таковая неувязка не возникает. В случае сложных систем с сиим недозволено согласиться. Единственный метод решения данной задачи состоит в увеличении приоритета нити вручную до этого, чем ресурс окажется заблокированным — это может быть в случае, когда две нити различных ценностей претендуют на один ресурс. В общем случае решения не существует.
1.5.5 Требование 5. время выполнения системных вызовов и временные свойства поведения системы в разных обстоятельствах должны быть известны разрабу, потому производитель ОСРВ должен приводить последующие свойства:
o латентную задержку прерывания (т. е. время от момента прерывания до момента пуска задачки): она обязана быть прогнозируема и согласована с требованиями приложения. Эта величина зависит от числа сразу «висячих» прерываний;
o наибольшее время выполнения всякого системного вызова (обязано быть прогнозируемым и независящим от числа объектов в системе);
o наибольшее время комуфлирования прерываний драйверами и ОС.
o системные уровни прерываний;
o уровни прерываний драйверов устройств, их временные свойства и т. д.
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
— 1-ая коммерческая ОС, построенная на принципах микроядра и обмена сообщениями. Система реализована в виде совокупы независящих (но взаимодействующих через обмен сообщениями) действий различного уровня (менеджеры и драйверы), любой из которых реализует определенный вид сервиса.
Эти идеи дозволили достигнуть нескольких важных преимуществ:
o предсказуемость, значащая ее применимость к задачкам твердого настоящего времени. Ни одна версия UNIX не может достигнуть подобного свойства, так как код ядра очень велик. Хоть какой системный вызов из обработчика прерывания в unix может привести к непредсказуемой задержке (как и в Windows NT);
o масштабируемость и эффективность, достигаемые хорошим внедрением ресурсов и означающие ее применимость для интегрированных (embedded) систем. В каталоге dev находятся лишь нужные для намеченных целей файлы, надлежащие необходимым драйверам. Драйверы и менеджеры можно запускать и удалять (не считая файловой системы) динамически, просто из командной строчки. Вероятна также покупка лишь тех модулей, которые реально нужны для обеспечения подходящих функций;
o расширяемость и надежность сразу, так как написанный драйвер не надо составлять в ядро, рискуя вызвать непостоянность системы.
Система построена по технологии 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 имеет некие ограничения, связанные с ориентацией системы на рынок интегрированных систем настоящего времени:
o нет поддержки SMP;
o отсутствует запись виртуальной памяти на диск;
o неэффективная и необычная поддержка нитей;
o плохая реализация отображения файлов в памяти;
o нетподдержки unix-domain sockets;
o слабенькие средства сохранности в рамках собственного сетевого протокола.
Невзирая на присущие минусы, для QNX создано огромное количество пользовательских программ, к примеру, базы данных, которые по производительности нередко превосходят аналоги под управлением остальных операционных систем.
2.1.1 Проф пакет
В состав QNX входят графическая оболочка Photon microGUI — полнофункциональная и в то же время встраиваемая оконная среда с расширяемой подсистемой мультимедиа и поддержкой аппаратно независящего мультислойного интерфейса. В её состав также включены масштабируемые шрифты и интегрированная поддержка Unicode; широкий диапазон файловых систем, включая образную файловую систему, файловую систему в ОЗУ либо ППЗУ Flash, файловые системы QNX, Linux, DOS, CD — ROM, DVD, NFS, CIFS, пакетную файловую систему и файловую систему со сжатием; ядро с поддержкой SMP — обычное микроядро можно поменять на SMP совместимое, предоставляющее реальную поддержку тесновато связанного SMP для многопроцессорных плат на базе MIPS, PowerPC и x 86; админ систем высочайшей готовности поддерживает квитанции работоспособности для ранешней диагностики отказов и предоставляет умственные механизмы перезапуска отказавших компонент; поддержка Java две среды выполнения, оптимизированные для QNX: WebSphere Embedded Environment (эталон Java Powered ) и WebSphere Custom Environment; POSIX API поддержка POSIX 1003.1-2003, включая многопоточность, расширения настоящего времени и огромное количество остальных опций; стеки TCP / IP — встраиваемый стек, стек NetBSD либо расширенный стек NetBSD с поддержкой IPSec и IPv6; отказоустойчивый сетевой интерфейс в QNX приложениях могут прозрачно вести взаимодействие по резервированным сетевым соединениям. Если одно соединение нарушается, ОС автоматом перенаправит сетевой трафик по одному либо нескольким другим маршрутам. Поддерживается также балансировка перегрузки меж всеми доступными соединениями для роста пропускной возможности. Функции настоящего времени QNX обеспечивает резвое, предсказуемое время реакции за счёт вытесняющего планирования, сверхмалых задержек обработки прерываний, распределённого наследования ценностей и почти всех остальных реализованных в ней современных устройств. В поставку проф пакета QNX Momentics заходит всё, что нужно на любом шаге разработки системы, от встраивания на процессорную плату до системного анализа. Кроме графической IDE создатели могут применять и обыденный командностроковый инструментарий, получая полностью такие же бинарные модули и контекст. QNX Momentics обеспечивает разрабам свободу выбора инвентаря разработки, потому что его встроенная среда базирована на Eclipse — открытой платформе, поддерживаемой огромным и повсевременно расширяющимся обществом компаний производителей. Eclipse также предоставляет расширяемую архитектуру подключаемых модулей, позволяющую QNX Momentics работать с фактически хоть каким типом информационного содержания. к примеру, в состав QNX Momentics заходит огромное количество подключаемых модулей для разработки и анализа встраиваемых образов, начальных текстов на C/C++ и иных объектов, соответствующих для встраиваемых систем. Поддержка огромного количества языков программирования ( C, C++, встраиваемый C++ либо Java ), инструментальных ОС ( Windows, Solaris либо QNX ) и мотивированных микропроцессоров (ARM, MIPS, PowerPC, SH -4, StrongARM, XScale либо x86) дозволяет значительно уменьшить время разработки проекта независимо от его масштаба и трудности.
средства разработки кода QNX Momentics содержат в себе:
o «мастера» проектов,
o редакторы кода,
o средства управления начальными текстами,
o средства построения проектов.
QNX Momentics поддерживает огромное количество обширно распространённых библиотек, включая
o ANSI C,
o POSIX,
o Dinkum C++, полная версия,
o Dinkum C++, встраиваемая версия с сокращенной STL ,
o GNU C++ (лишь для x86),
o сжатие,
o сеть,
o графика,
o виджеты,
o XML.
Внедрение обычных инструментов содержит в себе:
o GCC v2.95x, GDB v5.x,
o LD v2.10.x, поддерживаетсяэмуляция: i386nto, armnto, elf32bmpinto, elf32ppcnto, shielfnto,
o MAKE v3.79x,
o JDK 1.3 совместимый Java компилятор (с поддержкой инкрементной компиляции для роста производительности огромных проектов).
IDE содержит в себе встроенную поддержку протокола управления начальными текстами CVS включая поддержку удалённого сервера и доступ к защищенным репозитариям средством sSh. Также поддерживается система управления начальными текстами ClearCase, поставляемая компанией Rational Software в виде подключаемого модуля для Eclipse.
способности:
o локальное управление версиями;
o распределённое управление версиями;
o поддержка журнальчика конфигурации файлов (кем и какие конфигурации внесены);
o зрительное сопоставление версий;
o интерактивное слияние конфигураций в ситуации, когда несколько разрабов изменяют один и этот же файл.
Используя PhAB™, зрительное средство разработки приложений QNX Photon microGUI®, можно создавать полнофункциональные пользовательские интерфейсы с простотой щелчка мыши. способности PhAB™ содержат в себе:
o готовые шаблоны PhAB;
o широкая гамма доступных частей управления (виджетов);
o привязка к виджетам диалоговых окон либо вызовов функций (предопределенные, по «жаркой» клавише либо по низкоуровневым событиям);
o полная поддержка со стороны встроенной среды QNX Momentics;
o минимизация кода;
o многоязычная поддержка.
2.1.2 Рабочая станция
Системный профайлер дозволяет разрешать конфликты синхронизации, определять ситуации обоюдных блокировок, выявлять корешки семантических ошибок, отыскивать сокрытые проблемы в программном и аппаратном обеспечении и улучшить производительность приложения, причём как для однопроцессорных, так и для многопроцессорных мотивированных систем. свойства системы могут быть проанализированы в настоящем времени, в моменты появления событий. Удачный инструмент поиска дозволяет проанализировать детали по любому событию, включая время появления, обладателя и тип. Системный профайлер может показывать большие объёмы инфы, включая информацию о вызовах ядра, аппаратных прерываниях, состоянии потоков, обмене сообщениями и событиях планировщика. Сложные композиции критерий могут быть отслежены благодаря развитой системе динамических фильтров, определяемых юзером. В приложения могут быть интегрированы средства генерации специализированных сообщений для подсистемы трассировки, оказывающей упреждающее действие на процесс записи событий. Профайлер приложений предоставляет информацию о использовании процессорного времени каждым потоком и показывает её сразу как в виде абсолютных значений, так и в виде процентной толики от общего времени с возможностью сортировки. Профайлер может рассматривать динамически загружаемые разделяемые библиотеки, отвечая тем на вопросец, где кроется причина понижения производительности в коде приложения либо в библиотеке, которую оно вызывает. ОС QNX предоставляет юзеру библиотеку распределения памяти, содержащую реализацию большинства типовых операций над строчками и памятью. Эти функции перед выполнением операции инспектируют правильность использования обозначенной области памяти, позволяя выявлять ошибки типа переполнения, подборки из пустого буфера, неправильного использования памяти и повторного освобождения одной и той же области. «Умственный» механизм выслеживает ошибки работы с памятью. При появлении ошибки соответственный фрагмент начального текста будет помечен предупреждением, при всем этом можно:
o продолжить выполнение программки;
o окончить программку и сохранить её образ в дамп файле;
o приостановить программку и немедля переключиться в отладчик для локализации задачи.
анализатор ОЗУ помогает зрительно представлять внедрение памяти программками и может стремительно выявлять переполнения буферов, неправильные освобождения памяти и огромное количество остальных типовых неверных ситуаций. анализатор ОЗУ предоставляет:
o информацию на уровне процесса, которая дозволяет стремительно оценить карту памяти программки;
o специализированную статистику распределения памяти для выявления заморочек с внедрением «кучи». Статистика содержит в себе суммарное количество вольных, распределённых и применяемых байтов и блоков; динамический журнальчик использования памяти для оценки динамики ситуации. Комплекты разработки драйверов (DDK) разрешают стремительно создавать драйверы для необычного оборудования — аудио, графических и сетевых адаптеров, устройств ввода, принтеров, символьных и USB устройств. Комплекты содержат в себе начальные тексты, детализированную документацию и готовый программный основа, в каком весь высокоуровневый аппаратно независящий код уже реализован в виде библиотек.
Так как в QNX драйверы производятся как обыденные пользовательские процессы, их можно отлаживать и улучшить с помощью такого же интегрированного инвентаря, который QNX Momentics предоставляет для отладки обыденных приложений. Нет никакой необходимости в использовании отладчиков на уровне ядра, которые могут застопорить работу всей мотивированной системы, в итоге скрывая ошибки. Микроядерная архитектура QNX дозволяет тестировать конфигурации в коде драйверов без перезагрузки системы и даже без перезапуска сеанса отладки нужно просто перекомпилировать и перезапустить драйвер. Наличие встроенного эмулятора дозволяет тестировать и отлаживать драйверы конкретно на инструментальном компе, не теряя времени на ожидание мотивированной аппаратуры. QNX Momentics предоставляет полный набор инвентаря для исходной загрузки и взаимодействия с мотивированным оборудованием. В этот инструментарий входят пакеты поддержки (BSP) для широкого диапазона процессорных плат, построитель встраиваемых систем, позволяющий стремительно сформировывать и настраивать мотивированные образы, и неповторимый мотивированной агент, динамически загружающий сервисные модули при необходимости. QNX Momentics также содержит в себе навигатор мотивированных систем, который дозволяет привязывать проекты к IP адресам либо именам хостов, совершенно точно определяя программно аппаратную конфигурацию мотивированных систем. Эти конфигурации потом могут употребляться при работе с иными инструментальными средствами. Навигатор мотивированных систем также обеспечивает интерактивное отображение выполняющихся действий, позволяя просмотреть последующую информацию о мотивированной системе: внедрение ресурсов, атрибуты потоков, файловые дескрипторы и т.д. QNX Momentics предоставляет обеспеченный выбор готовых пакетов поддержки процессорных плат (BSP) на базе микропроцессоров ARM, MIPS, x86, PowerPC, SH-4, StrongARM и XScale. Любой BSP снабжён детализированной документацией и начальными текстами всех бинарных модулей, включая исходный загрузчик, стартовый код и драйверы устройств.
2.2 VxWorks/Tornado
Операционная система настоящего времени VxWorks и инструментальная среда Tornado компании Wind River Systems предусмотрены для разработки ПО интегрированных компов, работающих в системах твердого настоящего времени. Операционная система VxWorks является системой с кросс-средствами разработки прикладного программного обеспечения. Разработка ведется на инструментальном компе (host) в среде Tornado для следующего выполнения на мотивированной машине (target) под управлением VxWorks.
VxWorks поддерживает мотивированные архитектуры (targets):
o Motorola 680×0 и CPU32, PowerPC;
o Intel 386/486/Pentium, Intel 960;
o Spare, Mips R3000/4000;
o AMD 29K, Motorola 88110;
o HP PA-RISC;
o Hitachi SH7600;
o DEC Alpha.
Инструментальные платформы, поддерживаемые для Tornado (hosts):
o Sun SPARCstation (SunOS и Solaris);
o HP 9000/400,700 (HP-UX);
o IBM RS6000 (AIX);
o Silicon Graphics (IRIX);
o DEC Alpha (OSF/1);
o PC (Windows).
Поддерживаемые интерфейсы host-target:
o host-target Ethernet;
o RS232;
o внутрисхемныйэмулятор ICE (In-Circuit Emulator);
o кросс-шина (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 и др.
2.3 RTLinux
2.3.1 Главные трудности при реализации систем настоящего времени в среде LINUX
Как было сказано выше, главный задачей является реагирование на некое наружное событие в данный просвет времени. Наружное событие обычно, исходя из убеждений программера, смотрится как аппаратное прерывание. В современных многозадачных операционных системах первым на аппаратное прерывание реагирует ядро. Потом это прерывание через драйвера устройств каким-то образом может попасть и к прикладной задачке. Но в многозадачной системе должны сразу работать сходу несколько задач и для того, чтоб доставить прерывание, ядро обязано перевести процесс, выполняющийся на этот момент в состояние сна, пробудить подходящий процесс и передать ему прерывание. Для этого необходимо переключать контексты, что просит много времени, потому прерывание будет доставлено процессу со значимым запозданием. Не считая того, опосля получения прерывания действием недозволено быть уверенным, что обработка инфы будет завершена в малые сроки, т.к. если комп обустроен всего одним микропроцессором, а в системе запущено больше одной задачки — то в хоть какой момент может произойти переключение задач с еще одним переключением контекстов. В итоге — время реакции может получиться необоснованно огромным (на довольно производительном компе).
Linux
— современная POSIX-совместимая и Unix-подобная операционная система для ПК и рабочих станций, т. е. многопользовательская сетевая операционная система. ОС Linux поддерживает эталоны открытых систем и протоколы сети Internet. Все составляющие системы, включая начальные тексты, распространяются с лицензией на свободное копирование и установку для неограниченного числа юзеров.
Соответствующие индивидуальности Linux как ОС:
o многозадачность (является неотклонимым условием);
o многопользовательский режим;
o защищенный режим микропроцессора (386 protected mode);
o защита памяти процесса (сбой программки не может вызвать зависания системы);
o экономичная загрузка: Linux считывает с диска лишь те части программки, которые вправду употребляются для выполнения;
o разделение страничек по записи меж экземплярами выполняемой программки. Это означает, что процессы-экземпляры программки могут применять при выполнении одну и ту же память. Когда таковой процесс пробует произвести запись в память, то 4-килобайтная страничка, в которую идет запись, копируется на свободное пространство. Это свойство наращивает быстродействие и сберегает память;
o виртуальная память со страничной организацией (т. е. на диск из памяти вытесняется не весь неактивный процесс, а лишь требуемая страничка); виртуальная память в самостоятельных разделах диска и/либо файлах файловой системы; размер виртуальной памяти до 2 Гб; изменение размера виртуальной памяти во время выполнения программ;
o общая память программ и дискового кэша: вся вольная память употребляется для буферизации обмена с диском;
o динамические загружаемые разделяемые библиотеки;
o дамп программки для пост-мортем анализа: дозволяет рассматривать отладчиком не только лишь выполняющуюся, да и завершившуюся аварийно программку;
o сертификация по эталону POSIX.1, сопоставимость со эталонами System V и BSD на уровне начальных текстов;
o через iВS2-согласованный эмулятор сопоставимость с SCO, SVR3, SVR4 по загружаемым программкам;
o наличие начального текста всех программ, включая тексты ядра, драйверов, средств разработки и приложений. Эти тексты свободно распространяются. В истинное время некими фирмами для Linux поставляется ряд коммерческих программ без начальных текстов, но все, что было вольным так и остается вольным;
o управление заданиями в эталоне POSIX;
o эмуляция сопроцессора в ядре, потому приложение может не хлопотать о эмуляции сопроцессора. естественно, если сопроцессор имеется в наличии, то он и употребляется;
o множественные виртуальные консоли: на одном мониторе несколько сразу независящих сеансов работы, переключаемых с клавиатуры;
o поддержка ряда всераспространенных файловых систем (MINIX, Xenix, файловые системы System V); наличие своей передовой файловой системы объемом до 4 Тб и с названиями файлов до 255 символов;
o прозрачный доступ к разделам DOS (либо OS/2 FAT): раздел DOS смотрится как часть файловой системы Linux; поддержка VFAT (WNT, Windows 95);
o доступ (лишь чтение) к файловой системе HPFS-2 OS/2 2.1;
o поддержка всех обычных форматов CD ROM;
o поддержка сети 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-ая возможность — видоизменять обычное ядро и создать его стопроцентно прерываемым.
2.3.2 Организация RTLinux
RTLinux организован третьим методом, в каком обычное ядро настоящего времени запускает обыденное ядро как одну из задач настоящего времени с самым низким ценностью, используя виртуальную машинку для того, чтоб создать обычное ядро стопроцентно прерываемым.
В RTLinux все прерывания обслуживаются ядром настоящего времени, а потом передаются обычному ядру, но лишь в том случае, если нет необходимости запускать одну из задач настоящего времени. Для того чтоб минимизировать количество конфигураций в обычном ядре, этот механизм реализован с помощью эмулирования ICH (Interrupt Control Hardware). Ядро настоящего времени и пользовательские задачки Linux могут обмениваться данными через неблокируемые очереди и сегменты разделяемой памяти.
Исходя из убеждений программера очереди смотрятся как обычные поочередные устройства unix, доступ к которым вероятен с помощью системных вызовов POSIX read/write/open/ioctl. Разделяемая память доступна через системный вызов mmap.
RTLinux употребляет Linux для загрузки, доступа к большинству устройств, работы с сетью, файловыми системами, управлением действиями Linux и загрузки модулей ядра, что дает возможность просто видоизменять систему настоящего времени.
Программка настоящего времени состоит из 2-ух частей: задачки, которая представляет собой модуль ядра, и обычный unix/Linux процесс и хлопочет о обработке данных, доступу к монитору и сети и о всех остальных функциях, не требующих таковых твердых временных рамок.
На практике оказалось, что мысль RTLinux весьма удачна. В самом худшем случае запаздывание прерываний на 486/33Mhz PC оказалось наименее 30 мкс, что близко к аппаратному лимиту. Для прикладных задач симбиоз систем настоящего времени и оптимизированной для «общего варианта» оказался весьма удачным. Более нередко применяемая конфигурация RTLinux — примитивные задачки настоящего времени со статически распределяемой памятью без ее защиты, обычным планировщиком с фиксированными ценностями без защиты от нереализуемых планов, аппаратным воспрещением прерываний, разделяемая память — единственный механизм синхронизации задач настоящего времени и ограниченный набором операций над FIFO-очередями, подсоединенными к обыденным действиям Linux.
Ядро Linux дозволяет в динамике загружать и выгружать модули ядра. Представив отдельные части ядра настоящего времени в виде модулей, просто изменять ядро настоящего времени. Уже написаны другие планировщики и модуль семафоров. Во время работы системы можно загрузить модуль с задачками настоящего времени, потом выгрузить обычный планировщик и загрузить, к примеру, EDF планировщик. Можно пробовать различные композиции модулей, пока не будет найдена лучшая.
Этот вариант Linux дозволяет делать задачки в настоящем времени, что достигается методом вставки ядра настоящего времени меж обычным ядром Linux и аппаратными прерываниями и дозволяет избавиться от главной предпосылки непригодности Linux для задач настоящего времени — огромного запаздывания прерываний.
Исходя из убеждений RTLinux, Linux — одна из задач настоящего времени, имеющая самый маленький Ценность, быть может прервана, когда необходимо. Таковая структура накладывает некие ограничения на задачки настоящего времени. Они не могут просто применять разные драйверы Linux, не имеют доступ к сети и т. д., но зато могут обмениваться данными с обычными задачками Linux.
Обыкновенные очереди FIFO реализованы для обмена данными меж действиями настоящего времени и действиями Linux. Обычное приложение состоит из 2-ух частей — задачки настоящего времени, конкретно работающей с аппаратурой, и, обычно, задачки 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 издавна стала де-факто эталоном для подавляющего большинства систем, использующих интегрированные ОС. работы сетевого микропроцессора под управлением ОС Linux (с расширениями настоящего времени). Осуществляется программная поддержка некими производителями ОС Linux (к примеру,LynuxWorks и т. д.).
2.4 Контроль и управление в настоящем времени с внедрением OS9
2.4.1 Введение
Для управления из одного центра одной либо почти всеми удалёнными установками и проверки их состояния КомпанияCS (Франция) разработала систему контроля. Она может применяться для управления энергетическими объектами, в системах кондиционирования воздуха, системах сохранности, технологических установках, сетях, промышленных конвейерах и уже внедрена на почти всех штатских и военных объектах.
Система предоставляет аппаратное и программное решение всех качеств контроля. Широкие способности сопряжения обеспечивают сбор данных с внешних датчиков, оконечных устройств, программируемых блоков ввода/вывода и с хост-систем.
В системе контроля можно выделить два уровня:
o Уровень 1 для сбора и обработки локальных данных;
o Уровень 2 для сбора и анализа данных с удаленных объектов.
задачки на уровне 1 производятся блоком GESCAP (к примеру, рабочей станцией на микропроцессоре 68010 компании Motorola с ОЗУ 1 Мбайт), а на уровне 2 — блоком GESVA (к примеру, рабочей станцией на микропроцессоре 68030 компании Motorola с ОЗУ 4 Мбайт). В блоках GESVA и GESCAP употребляется одна и та же операционная система (OS-9) и прикладное программное обеспечение. Различны лишь видеотерминалы и многофункциональные способности. Благодаря данной однородности облегчается установка, внедрение и поддержание работоспособности системы.
Так как пользовательский интерфейс GESVA и GESCAP соответствует интуитивным представлениям, работа по конфигурированию не вызывает проблем и не просит никаких особенных знаний в информатике. юзер имеет дело с всплывающими меню и диалоговыми окнами, обеспечивающими доступ к последующим обычным функциям.
Конфигурирование аналоговых либо цифровых блоков ввода/вывода (аварийные сигналы, сообщения, ценности, и т.д.):
o логические операции (И, ИЛИ …) над входными данными;
o установление соответствия разъёмов любому устройству ввода/вывода;
o перегруппировка устройств ввода/вывода;
o графическое взаимодействие с элементами анимации.
Функции отображения состояния:
состояние блоков ввода/вывода, устройств, соединений, аварийных сигналов, бортовой журнальчик настоящего времени.
Графические функции:
o автоматическое размещение аварийных сигналов в изображениях;
o перемещение по изображениям источников данных;
o отображение кривых в настоящем времени;
o видеоотображение кривых в настоящем времени.
Функции связи:
o протокол связи JBUS/MODBUS (RS-232/RS-422);
o связь с системой помощи в локализации и устранении дефектов (GESDOC).
Функции выдачи на печать:
o распечатка структуры системы;
o распечатка перечня сигналов волнения и событий.
Функции различного предназначения:
Интеграция новейших задач с программным обеспечением, не требующая никаких конфигураций на уровне начального кода.
2.4.2 Как развивалась эта прикладная система?
Главными требованиями к программному обеспечению были:
o один и этот же состав прикладных программ и единый пользовательский интерфейс на разных платах и типах отображения;
o стремительная развитая многооконная среда, расходующая как можно меньше памяти;
o многозадачная, прошиваемая в ПЗУ операционная система настоящего времени с маленькими требованиями к размеру памяти.
В итоге выбрана операционная система OS9, лучшим образом отвечающая перечисленным требованиям.
В качестве многооконной среды разработки избран пакет WINOTOOLS. При помощи утилит WINOTOOLS можно без программирования разрабатывать все элементы пользовательского интерфейса (окна, средства графического ввода данных, клавиши, предупреждающие сообщения и т.п.).
Благодаря умеренным требованиям к размеру памяти и малому времени реакции, WINOTOOLS в сочетании с чертами OS9 является безупречной средой разработки различных прикладных программ настоящего времени, работающих в графическом режиме.
2.4.3 Утилиты WINOTOOLS:
o Paint
— объектно-ориентированный графический редактор для разработки пользовательских интерфейсов, пультов управления и диаграмм. Paint разработан таковым образом, чтоб его можно было настраивать и интегрировать в пользовательскую прикладную программку. Все файлы графических данных, сделанные при помощи Paint, могут полностью модифицироваться без воззвания к начальным кодам (импортируются файлы в формате GIF).
o Script
— язык, позволяющий моделировать все диалоги с пользовательским интерфейсом до написания строчки начального кода. Эта утилита дозволяет создавать резвую проверку корректности пользовательского интерфейса.
o DATABASE
(база ДАННЫХ) — библиотека С-функций, обеспечивающая управление базой данных (соответствие данных и индексных файлов базы данных).
o библиотека ВВОДА/ВЫВОДА
— библиотека С-функций, обеспечивающая сопряжение пользовательского интерфейса с устройствами ввода/вывода.
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.
Вот некие из их:
o недостающее количество real-time ценностей;
o отсутствие наследования ценностей, как средства борьбы с инверсией ценностей;
o неподходящая для RTOS система обработки прерываний.
В Windows NT доступ к прерываниям осуществляется из драйвера ядра,а сами прерывания обрабатываются в два шага: поначалу вызывается весьма маленькая Interrupt Service Routine (ISR), осуществляющая критичную обработку, основная обработка прерывания происходит в Deferred Procedure Call (DPC). Все DPC производятся с схожим уровнем приоритета в порядке поступления (FIFO).
Таковым образом, время окончания обработки вашей DPC оказывается непредсказуемым образом зависимым от наличия в системе остальных драйверов и их активности. Для систем с твердым детерминизмом нужно буквально знать наибольшее время от момента появления прерывания до входа в функцию обработки и гарантировать его непревышение.
2.5.2 RTX — real-time вместе с 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. Это обосновано последующими причинами:
o прикладной программный интерфейс (API) Win32 сейчас является для программистов эталоном де-факто;
o графический интерфейс юзера (GUI-интерфейс) популярен так, что GUI-интерфейсы остальных операционных систем начинают на него прогуляться все больше;
o создано большущее количество драйверов независящих производителей;
o создано огромное количество весьма массивных встроенных инструментальных пакетов (IDE).
2.5.3 Windows NT 4.0 как ОСРВ. Общие требования
Чтоб называться ОСРВ, операционная система обязана удовлетворять некому минимальному набору требований, которые нужны, но недостаточны. В самом начале собственной работы я это указывал, но повторимся снова:
o операционная система обязана поддерживать многопоточность (многонитиевость — multithreaded) и вытеснение задач по ценностям (preemptable);
o обязано существовать понятие приоритета потока (нити);
o операционная система обязана поддерживать механизмы синхронизации выполнения потоков (нитей) с прогнозируемыми чертами;
o должен иметься механизм наследования ценностей;
o поведение операционной системы обязано быть известным и прогнозируемым (внутренние задержки прерываний, задержки переключения задач, задержки драйверов и т.д.).
Первому требованию 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), что дозволяет выделять критичные участки кода приложений WindowsNT и надзирать время и надежность их выполнения. Возникает возможность контроля за работоспособностью и периодически реакции системы. «Зависания» обычных приложений 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 реализован в 2-ух видах — как подмножество подсистемы настоящего времени (RTSS) и как динамическая библиотека (DLL), которая может вызываться из Win32-приложений. RTAPI содержит последующие группы функций: Управление действиями и нитями: Предоставляет Win32-совместимый интерфейс для управления, сотворения, конфигурации ценностей, профилирования и окончания нитей настоящего времени. Взаимодействие меж действиями: RTAPI употребляет семафоры, мьютексы и разделяемую память для взаимодействия как нитей настоящего времени меж собой, так и для взаимодействия действий настоящего времени с действиями WIN32. Управление памятью: Дозволяет фиксировать приложения в памяти, запрещая их выгрузку в файл подкачки. Доступ к физической памяти: Приложение юзера получает возможность доступа к данным по физическим адресам памяти. Управление прерываниями: Содержит функции, дозволяющие назначать и воспрещать обработчики прерываний, разрешать и воспрещать прерывания. Часы и таймеры: Содержит функции управления часами и таймерами (создание, удаление, отмена, инициализация таймеров, предназначение обработчиков прерываний) Управление вводом-выводом: RTAPI предоставляет два метода управления устройствами ввода-вывода. Во-1-х, приложения юзера получают возможность конкретного доступа к адресам портов ввода-вывода, что дозволяет программировать работу устройств впрямую. Не считая того, наружное устройство может управляться особыми (просто разрабатываемыми) драйверами, для работы с которыми RTAPI предоставляет особый интерфейс.
3. Литература
1. часть 1 «Программируемые контроллеры». 40 стр.
2. Часть 2 «Операционные системы настоящего времени. OS-9. Промышленные сети». 156 стр.
3. часть 3 «Инструментальная система программирования логических контроллеров ISaGRAF». 228 стр.
4. QNX4 User‘s Guide
5. Журнальчик «СТА» (Современные технологии Автоматизации), 96, 97 г.
6. Журнальчик «Открытые системы«, 97 г. ( http://www.osp.ru/os/index )
]]>