Операционные системы реального времени

Автор: Пользователь скрыл имя, 12 Декабря 2012 в 16:43, реферат

Описание работы

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

Работа содержит 1 файл

системы реального времени.doc

— 190.00 Кб (Скачать)

Преимущества (+) Специализированных ОСРВ:  
– Наивысшая производительность, 
– Наилучший учет особенностей оборудования, 
– Наибольшая компактность. 
 
Недостатки (-) Специализированных ОСРВ:  
– Большое время разработки, 
– Высокая стоимость, 
– Непереносимость.

  1. Типы ОСРВ по внутреннему строению:

•“Классические” –  
ОСРВ, основанные на процедурном подходе к программированию. Примеры: QNX, OS-9, pSOS, VRTX, VxWorks, CHORUS.

•Объектно-ориентированные –  
ОСРВ, основанные на объектно-ориентированном подходе к разработке программного обеспечения. Пример: SoftKernel.

 

 

 

 

3.4 Примеры  ОСРВ 

ОСРВ QNX

Обзор начнем с  одной из самых распространенных ОСРВ – ОС QNX.  
QNX выпускается фирмой QNX SoftWare Systems (USA), предназначена для высокоответственных приложений, бесперебойно функционирующих годами. Надежность QNX обеспечивается ее архитектурой на основе микроядра. На рис. 2 приведена архитектура QNX.

 

<>

- МИКРОЯДРО (MicroKernel)  
- МЕНЕДЖЕР ПРОЦЕССОВ (Proc)  
- МЕНЕДЖЕР ФАЙЛОВЫХ СИСТЕМ (Fsys); 
- МЕНЕДЖЕР УСТРОЙСТВ (Dev) 
- МЕНЕДЖЕР СЕТИ (Net)


рис.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 построена по технологии микроядра, т.е. на нижнем непрерываемом уровне ядра выполняются только базовые функции планирования задач и управления коммуникацией/синхронизацией между задачами. Все остальные функции ОС более высокого уровня - управление памятью, вводом/выводом, сетевые средства, и т.д. - базируются на простых функциях нижнего уровня, Такая иерархическая организация позволяет обеспечить быстродействие и детерминированность ядра, а также легко строить необходимую конфигурацию ОС.

 
 
Рис. 3 Архитектура ОСРВ VxWorks 5.4

Основные  параметры ядра VxWorks:  
- Количество задач - неограничено  
- Количество уровней приоритетов задач - 256  
- Планирование задач - вытеснение по приоритетам и круговое  
- Средства межзадачных коммуникаций - семафоры, сигналы, очереди сообщений, каналы, сокеты, удаленный вызов процедур и разделяемая память.

VxWorks операционная  система с кросс-средствами разработки  прикладного ПО: разработка ведется  на инструментальной машине (host) в инструментальной среде Tornado с последующей загрузкой, исполнением и отладкой на целевой машине (target), работающей под управлением 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 можно отнести:

  • Поддержка микропроцессоров серии Motorola, Intel 80386/486, Pentium, PowerPC.  
    Ценность ОС во многом определяется количеством поддерживаемых аппаратных платформ и качеством этой поддержки. OS-9 зародилась, как система для процессоров фирмы Motorola и почти целиком написана на ассемблере семейства Motorola 68k. Этим объяснялась и сложность её переноса на другие платформы и высокая эффективность на родственных процессорах. Появившееся в конце 90-х годов новое поколение высокоэффективных компиляторов языка С, способствовали переносимости на большинство других платформ.
  • Переносимость широкого круга приложений.  
    Идеи, заложенные в систему, послужили исходным материалом при создании стандарта POSIX 1003. В настоящее время OS-9 поддерживает: ANSI C/C++, POSIX 1003.1, TCP/IP(NFS/RPC), Windows X11.R6(OSF Motif).
  • Детерминированное, полностью вытесняемое ядро.  
    Ядро OS-9 является масштабируемым, полностью вытесняемым, поддерживает функционирование до 65535 процессов, предоставляет 65535 уровней приоритета и обеспечивает работу до 255 пользователей. Ядро OS-9 содержит более 90 системных вызовов, которые дают возможность управлять динамическим режимом диспетчеризации, распределением памяти, межпроцессорной коммуникацией и т.д. – вплоть до управления встраиваемым в ядро ОС режимом экономичного потребления питания. Характеристики производительности ядра: 5,6 мкс – время задержки прерывания), 14 мкс – время переключения контекста процесса (для процессора MC68040, 30MHz).
  • Различные средства разработки  
    OS-9 предоставляет широкий набор средств разработки: локализованные (резидентные), удаленные (внешние), использующих принципиально отличные операционные среды. 
    Локализованные системы разработки функционируют в той же вычислительной среде, что и разрабатываемое приложение. Их достоинством является простота (следовательно, невысокая стоимость), быстрый переход от разработки к исполнению и наоборот, дополнительные возможности управления исполнением. 
    Удаленные (внешние) системы разработки – это и традиционные кросс-системы (такие, как PC-Bridge, работающая под управлением DOS, UniBridge , исполняющаяся в многопользовательской UNlX-среде) и профессиональные графические среды разработки ( такие как, FasTrak).
  • Развитые сетевые средства
  • Широкая поддержка разработчиков программного обеспечения и аппаратных средств промышленной автоматизации.  
    Семейство операционных систем реального времени OS-9 используются более 20 лет, число установленных копий превысило 5 миллионов. Спектр применений OS-9 широк – промышленная автоматизация, инструментальные и измерительные системы, системы военного и космического назначения. В последние годы она применяется в таких современных системах, как мобильные телекоммуникационные устройства, встраиваемые терминалы доступа в Интернет, интерактивные цифровые телевизионные приставки.

 

 

 

 

 

 

 

 

5 Примеры  реализации реального времени в универсальных ОС

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

Приложения  реального времени в ОС Windows NT

ОС семейства Windows – ОС “широкого назначения”. Однако разработчики стремятся задействовать  возможности Windows-систем для создания СРВ. Это объясняется следующим: 
- Программный интерфейс приложений (API) для Win32 известен большому числу программистов,  
- графический пользовательский интерфейс (GUI) стал настолько популярным, что другие ОС стараются обеспечить похожий интерфейс, 
- доступно большое количество драйверов устройств, 
- доступны многие мощные интегрированные среды разработки, 
- существует огромное число готовых приложений (в том числе, коммуникационных). 
 
ОС семейства Windows не могут служить хорошей платформой для приложений реального времени: слишком мало количество доступных приоритетов в классе реального времени; не решена проблема инверсии приоритетов; занимаемая память слишком велика для встраиваемых приложений.

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

 
рис 6 Обобщенная структура Windows NT

 

 

 

 

 

Существует  несколько подходов к использованию Windows для создания СРВ. 
1. Модификация уровня аппаратных абстракций  
Одним из возможных решений является использование совместно с Windows NT подсистемы реального времени, исполняющейся на том же процессоре (если процессор один) или на выделенном процессоре(-ах) (если их несколько). Этот подход использован фирмой VenturCom в продукте RTX (Real Time Extension). Схема функционирования RTX в составе Windows NT представлена на рис.7. 
Сущность подхода заключается в использовании модифицированного уровня аппаратных абстракций HAL.

 
 
рис 7 Структура Windows NT RTX

Так как аппаратные прерывания на первом этапе обработки  попадают в HAL и затем передаются ядру, именно на базе HAL создан дополнительный диспетчер – диспетчер реального  времени. Новый HAL по прерыванию от часов реального времени передает управление этому планировщику, который следит за очередью задач реального времени, находящихся в системе и выделяет им время в соответствии с приоритетом. В RTX существует 128 фиксированных приоритетов для задач реального времени. Если в очереди таких задач нет, то управление передается стандартному планировщику Windows NT. В итоге получаем два, несвязанных между собой, набора приложений: стандартные приложения NT и приложения реального времени, управляемые HAL-диспетчером. Обеспечить взаимодействие специалисты VenturCom предлагают двумя способами: 
- используя разделяемую память: на рис.7 это взаимодействие показано стрелкой IPC (Inter Process Communication). 
- представляя систему реального времени, как устройство, которое обрабатывает специфический драйвер DD_Com (Device Drive Communication). (См рис.7). 
 
Времена исполнения кодов модифицированного и оригинального HAL совпадают, т.е. присутствие RTX не сказывается на производительности Windows в отсутствие процессов реального времени. К недостаткам относится возможность возникновения ситуации, когда процессы реального времени будут занимать все процессорное время, и Windows NT не получит управления и окажется подвешенной.

Информация о работе Операционные системы реального времени