Автор: Пользователь скрыл имя, 12 Декабря 2012 в 16:43, реферат
Система реального времени - это конкретная система, связанная с реальным объектом, процессами. Она включает в себя необходимые аппаратные средства, операционную систему и прикладное программное обеспечение.
Операционные системы реального времени (ОСРВ) — системное программное обеспечение особого типа, которое используется для создания и управления СРВ.
Преимущества
(+) Специализированных ОСРВ:
– Наивысшая производительность,
– Наилучший учет особенностей оборудования,
– Наибольшая компактность.
Недостатки (-) Специализированных
ОСРВ:
– Большое время разработки,
– Высокая стоимость,
– Непереносимость.
•“Классические” –
ОСРВ, основанные на процедурном подходе
к программированию. Примеры: QNX, OS-9, pSOS,
VRTX, VxWorks, CHORUS.
•Объектно-ориентированные –
ОСРВ, основанные на объектно-ориентированном
подходе к разработке программного обеспечения.
Пример: SoftKernel.
3.4 Примеры ОСРВ
ОСРВ QNX
Обзор начнем с
одной из самых распространенных
ОСРВ – ОС QNX.
QNX выпускается фирмой QNX SoftWare Systems (USA),
предназначена для высокоответственных приложений, бесперебойно
функционирующих годами. Надежность QNX
обеспечивается ее архитектурой на основе
микроядра. На рис. 2 приведена архитектура
QNX.
<> |
- МИКРОЯДРО (MicroKernel) |
рис.2 Архитектура ОСРВ QNX
• МИКРОЯДРО
Размер микроядра в QNX составляет всего
около 10 Kb и оно отвечает только за диспетчеризацию
процессов, передачу сообщений, переадресацию
прерываний и поддержку сетевого интерфейса.
Поддерживается диспетчеризация до 300
процессов с 32 уровнями приоритетов и
4 алгоритма планирования: FIFO, Round-Robin (карусель),
Adaptive и Message-Priority.
QNX была первой коммерчески успешной операционной
системой, в основе которой лежал обмен
сообщениями как единственный способ
информационного обмена между взаимодействующими
процессами. Сообщения в QNX представляют
собой пакет байт, посланный от одного
процесса к другому; большое значение
придается содержанию сообщения, оно имеет
смысл только для процесса-источника и
процесса получателя, и ни для какого бы
то ни было другого процесса.
Обмен сообщениями обеспечивает не только
передачу информации, но является способом
синхронизации параллельной работы нескольких
процессов. При передаче, приеме и ответе
на сообщение процессы подвергаются разнообразным
изменениям состояния, которые влияют
на то, когда и как долго данный процесс
может работать. Имея информацию о приоритетах
и состояниях процессов, микроядро может
управлять работой процессов как можно
эффективней с точки зрения распределения
ресурсов системы. Этот единственный согласующий
метод - обмен сообщениями - действует
внутри всей системы.
При обычных условиях ядро недоступно
- оно защищено несколькими слоями защиты.
Оно становится доступно только по прямому
вызову из какого-либо системного процесса
или аппаратного прерывания.
• МЕНЕДЖЕР ПРОЦЕССОВ
Отвечает за создание и удаление процессов,
управление памятью, таймеры и эмуляцию
сопроцессора, а также диагностику. Сертифицирован
по стандарту POSIX 1003.1 и поддерживает многие
расширения POSIX 1003.4. Начиная с версии 4.25,
использует все возможности процессоров
Intel для аппаратной защиты памяти, в том
числе механизм страниц. Но свопинг на
диск не поддерживается, так как это трудно
совместимо с требованиями к ОС реального
времени.
Системные процессы в QNX недоступны для
прямого вызова из пользовательских процессов
или прикладных программ. А в остальном,
они ничем не отличаются от процессов
пользователя: не имеют ни скрытых, ни
так называемых "частных" интерфейсов.
Это предоставляет широкие возможности
параллельного расширения работы системы.
К примеру, для создания нового процесса
в QNX пользователю необходимо всего лишь
написать соответствующую программу и
запустить ее. При различных вариантах
запуска исполняемой программы, она может
быть представлена как системный процесс
или как внешний процесс пользователя.
• МЕНЕДЖЕР УСТРОЙСТВ
Драйверы устройств в QNX - это один из видов
системных процессов, которые обеспечивают
устойчивую работу специфического оборудования.
Первый запуск драйвера ничем не отличается
от запуска любой другой исполняемой программы.
Но после этого драйвер присоединяется
к системе, т.е. ассоциируется с наиболее
близким системным процессом в виде его
расширения или дополнения и больше не
требует никакой настройки. Однажды подключившись
к системе, драйвер может принимать следующий
вид:
- Исчезнуть, как процесс, но сохранить
все расширения, которые им были проведены
на системном процессе, с которым он был
ассоциирован;
- Сохранить свою индивидуальность как
процесса.
При добавлении нового драйвера в системе
не может произойти никаких побочных эффектов
в виде, например, конфликта с другими
устройствами.
• МЕНЕДЖЕР ФАЙЛОВЫХ
СИСТЕМ
QNX позволяет работать с несколькими файловыми
системами одновременно. В стандартный
комплект поставки входят менеджеры файловых систем POSIX, DOS (FAT-12, FAT-16,
все виды разделов) и ISO9660 (CD-ROM включая
расширения Rock Ridge). Файловая система POSIX
семантически соответствует UNIX, при этом
обеспечивается более высокая надежность
(в том числе при отказе питания) и параллелизм
в соответствии с POSIX 1003.1.
•МЕНЕДЖЕР СЕТИ
Сетевое взаимодействие является узким
местом в большинстве ОС и обычно создает
значительные проблемы для СРВ. Для того
чтобы обойти это препятствие разработчики
QNX создали собственную специальную сетевую технологию FLEET и соответствующий
протокол FTL (FLEET Transport Layer). Этот протокол
не базируется ни на одном из распространенных
сетевых протоколов типа IPX или NetBios и обладает
рядом качеств, которые делают его уникальным.
Системы на базе QNX внедрены во многих
сотнях фирм, среди которых такие известные
и крупные, как Du Pont, Ferranti-Packard, General Motors,
Kodak и другие.
Основная область применения QNX - это автоматизация
в промышленности в таких отраслях как
добыча и транспортировка газа и нефти,
управление технологическими процессами
в металлургии, машиностроении, химической
промышленности, водоснабжение, энергетика
(включая атомные электростанции), управление
роботами. Так, фирма Texaco использует QNX
для удаленного управления оборудованием
по добыче нефти и газа на платформах в
Мексиканском заливе. Фирмы General Electric и
General Dynamics используют QNX для управления
и мониторинга станов холодной прокатки
стали. Фирма Maritime Nuclear, обеспечивающая
часть атомной энергетики Канады, использует
QNX для управления тепловыми и атомными
электростанциями. QNX успешно используется
в системах управления роботами (фирмы
Ford, IBM, Nortern Telecom), в торговых автоматах,
торговых точках, интеллектуальных кассовых
аппаратах (системы POS - Point-of-Sale), объединяемых
в сети. QNX широко применяется в банковском
деле. Фирма VISA использует систему на базе
QNX для работы с кредитными карточками.
Часто QNX применяется в области коммуникаций:
фирма Panasonic разработала систему речевой
электронной почты на базе QNX.
ОСРВ VxWorks
ОС VxWorks компании
Wind River является встраиваемой ОС реального
времени. Значительная часть используемого
в Интернет сетевого оборудования,
коммутаторы, маршрутизаторы, серверы
удаленного доступа и устройства
широкополосного доступа работают под управлением
VxWorks.
ОСРВ VxWorks построена по технологии микроядра,
т.е. на нижнем непрерываемом уровне ядра
выполняются только базовые функции планирования
задач и управления коммуникацией/синхронизацией
между задачами. Все остальные функции
ОС более высокого уровня - управление
памятью, вводом/выводом, сетевые средства,
и т.д. - базируются на простых функциях
нижнего уровня, Такая иерархическая организация
позволяет обеспечить быстродействие
и детерминированность ядра, а также легко
строить необходимую конфигурацию ОС.
Основные
параметры ядра VxWorks:
- Количество задач - неограничено
- Количество уровней приоритетов задач
- 256
- Планирование задач - вытеснение по приоритетам
и круговое
- Средства межзадачных коммуникаций -
семафоры, сигналы, очереди сообщений,
каналы, сокеты, удаленный вызов процедур
и разделяемая память.
VxWorks операционная
система с кросс-средствами
Новая версия ОС VxWorks VxWorks AE (Advanced Edition) первая
коммерческая ОС реального времени, предназначенная
для построения высоконадежных отказоустойчивых
систем. В отличие от обычной VxWorks, VxWorks
AE построена по технологии "Protection Domain",
позволяющей изолировать ядро ОС от приложений
и приложения друг от друга. ОС VxWorks AE включает
в себя средства обнаружения и изоляции
отказов и восстановления после отказов
и поддерживает технологии построения
систем высокой готовности с коэффициентом
готовности "пять девяток" 99,999%. ОС
VxWorks AE портирована на ведущие CompactPCI-платформы
высокой готовности, такие как CPX8000 компании
Motorola Computer Group.
ОСРВ OS-9
OS-9 корпорации
Microware System (США) относится к классу
UNIX подобных систем и является
гибко конфигурируемой
Основным принципом построения OS-9 является максимальная
открытость структур и функций. Открытость
системы достигается за счет последовательного
модульного построения. Модульная архитектура
позволяет масштабировать ее для применения,
как в небольших встраиваемых системах,
так и для решения больших сетевых задач.
Принципиальным требованием является
реентерабельность и перемещаемость программного
кода. Реентерабельность достигается
за счет сосредоточения постоянных частей
кода в модулях памяти. Перемещаемость
подразумевает создание компиляторами
кода, не содержащего абсолютных адресов.
Любая программа может быть загружена
и исполнена с любого абсолютного адреса,
и эта возможность делает тривиальной
задачу размещения ОС (вместе с приложениями)
в ПЗУ.
В результате любые системные (за исключением
самого ядра и модуля данных) и прикладные
модули могут добавляться или удаляться
из системы в процессе ее функционирования
без какой-либо повторной компиляции или
компоновки.
Система OS-9 явилась одной из первых систем,
в которой последовательно реализован
принцип масштабирования ядер, то есть
построения семейства ядер с различным
набором предоставляемых функций. Смысл
масштабирования вытекает из необходимости
разрешить противоречие между требованием
обеспечить максимальную реактивность
СРВ и желанием в то же время предоставить
пользователю разумный сервис. Предлагаемые
решения совместить эти противоречия
в одном ядре были проигрышными. Две различные
задачи – обеспечение профессиональной
среды в период разработки и реализация
детерминизма, реактивности во время исполнения
приложения, лучше всего решаются различными
средствами. Ядро реального времени сознательно
отказывается от поддержки среды разработки,
сосредотачиваясь на временных критериях.
Вся же нагрузка по предоставлению сервиса
ложится на совершенно независимую часть
системы, работающую в максимально приспособленной
для этого операционной среде, не имеющей
отношения к реальному времени.
К достоинствам OS-9
можно отнести:
5 Примеры реализации реального времени в универсальных ОС
В последнее время, четко прослеживается тенденция использовать ОС широкого назначения для создания СРВ. Это обусловлено, с одной стороны, расширением областей применения компьютерного управления, с другой стороны - сравнительно малой известностью и высокой стоимостью специализированных ОСРВ.
Приложения реального времени в ОС Windows NT
ОС семейства
Windows – ОС “широкого назначения”.
Однако разработчики стремятся задействовать
возможности Windows-систем для создания
СРВ. Это объясняется следующим:
- Программный интерфейс приложений (API)
для Win32 известен большому числу программистов,
- графический пользовательский интерфейс
(GUI) стал настолько популярным, что другие
ОС стараются обеспечить похожий интерфейс,
- доступно большое количество драйверов
устройств,
- доступны многие мощные интегрированные
среды разработки,
- существует огромное число готовых приложений
(в том числе, коммуникационных).
ОС семейства Windows не могут служить хорошей
платформой для приложений реального
времени: слишком мало количество доступных
приоритетов в классе реального времени;
не решена проблема инверсии приоритетов;
занимаемая память слишком велика для
встраиваемых приложений.
Из приведенной на рис 6 обобщенной структуры Windows NT видно, что расширения реального времени могут быть построены только на модификациях уровня аппаратных абстракций (HAL - Hardware Abstraction Level) и создании специфических драйверов. Изменять ядро Microsoft не разрешает, а исходный код HAL может предоставить своим партнерам на основе соглашения. Первый вход в обслуживание прерываний происходит именно на HAL-уровне, а единственной модифицируемой частью ядра являются драйверы устройств.
Существует
несколько подходов к использованию Windows для создания СРВ.
1. Модификация уровня
аппаратных абстракций
Одним из возможных решений является использование
совместно с Windows NT подсистемы реального
времени, исполняющейся на том же процессоре
(если процессор один) или на выделенном
процессоре(-ах) (если их несколько). Этот
подход использован фирмой VenturCom в продукте
RTX (Real Time Extension). Схема функционирования
RTX в составе Windows NT представлена на рис.7.
Сущность подхода заключается в использовании
модифицированного уровня аппаратных
абстракций HAL.
Так как аппаратные
прерывания на первом этапе обработки
попадают в HAL и затем передаются
ядру, именно на базе HAL создан дополнительный
диспетчер – диспетчер
- используя разделяемую память: на рис.7
это взаимодействие показано стрелкой
IPC (Inter Process Communication).
- представляя систему реального времени,
как устройство, которое обрабатывает
специфический драйвер DD_Com (Device Drive Communication).
(См рис.7).
Времена исполнения кодов модифицированного
и оригинального HAL совпадают, т.е. присутствие
RTX не сказывается на производительности
Windows в отсутствие процессов реального
времени. К недостаткам относится возможность
возникновения ситуации, когда процессы
реального времени будут занимать все
процессорное время, и Windows NT не получит
управления и окажется подвешенной.