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

Автор работы: Пользователь скрыл имя, 19 Января 2015 в 18:43, реферат

Краткое описание

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

Содержание

1. Введение: Особенности операционных систем реального времени
1.1. Процессы, потоки, задачи
1.2. Планирование, приоритеты
1.3. Память
1.4. Прерывания
1.5. Часы и таймеры
1.6. Стандарты ОСРВ
1.6.1. POSIX
1.6.2. DO-178B
1.6.3. ARINC-653
1.6.4. OSEK
1.6.5. Стандарты безопасности
1.7. Настраиваемость операционных систем
2. Краткие характеристики наиболее распространенных ОСРВ
2.1. VxWorks
2.2. QNX Neutrino RTOS
2.3. RTEMS
2.4. ChorusOS
2.5. Расширения реального времени для Windows NT
2.5.1. RTX для Windows NT
2.5.2. INtime
2.5.3. Microsoft Windows Embedded
2.6. TinyOS
2.7. OSEK/VDX
2.8. OSE RTOS
2.9. Contiki
2.10. pSOS
2.11. INTEGRITY
2.12. LynxOS
2.13. Microware OS-9
2.14. GRACE-OS
2.15. C EXECUTIVE
2.16. CMX-RTX
2.16.1. CMX-TINY+
2.17. Inferno
3. ОС, разработанные специально для портативных устройств
3.1. ITRON
3.2. Windows CE
3.3. JavaOS
3.4. Jbed
3.5. Nucleus RTOS
3.6. EMERALDS
3.7. CORTEX
3.8. DeltaOS
3.9. Palm OS
3.10. Symbian OS (EPOC)
4. Настраиваемость операционных систем
4.1. Адаптация, осуществляемая человеком
4.1.1. Статическая адаптация, инициированная проектировщиком
4.1.2. Динамическая адаптация, инициированная администратором
4.2. Адаптация, инициированная приложением
4.2.1. Адаптация с уровня приложения
4.2.2. Адаптация на уровне ядра
4.3. Автоматическая адаптация
5. Сводные таблицы характеристик свойств ОСРВ

Прикрепленные файлы: 1 файл

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

— 1.25 Мб (Скачать документ)

В системе VINO [SS97] также применяется программная локализация неисправностей. В этой системе каждое расширение в ядре имеет свои собственные стек и область памяти. Защиту памяти гарантирует программная локализация неисправностей. Кроме того, VINO использует систему облегченных транзакций для управления выполнением расширений и использованием ресурсов. Наращиваемость в VINO можно осуществить двумя способами:

  • приложение может заменить реализацию метода некоторого объекта ядра (ресурса), если это разрешено, – это позволяет изменять стандартное поведение ресурсов,
  • приложение может зарегистрировать в ядре обработчик некоего события, такого как подключение в сети к конкретному порту, что позволяет инсталлировать в ядре новые сервисы.

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

.4.2.2.1.2 Безопасные языки

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

Безопасные языки, широко используемые в исследовательских проектах, – это Modula-3, Java и ML. Язык ML имеет формальную типовую систему, известную как систему Hindley-Milner, и дает возможность осуществлять статическую проверку типов. Языки Modula-3 и Java обладают меньшим формализмом, поэтому, чтобы гарантировать в них политику безопасности, необходимо выполнять многочисленные проверки типов во время выполнения. Однако ML, как декларативный язык, обеспечивает недостаточную эффективность во время выполнения.

Система SPIN основана на языке Modula-3 [BSP95]. Все взаимодействия между приложением и ядром осуществляются с помощью расширений. Каждое расширение связывается с событием. Расширение должно быть зарегистрировано диспетчером, который инсталлирует расширения и передает события расширениям. С отдельным событием может быть связано несколько расширений. Расширения замещаются или добавляются диспетчером. Modula-3, в основном, используется для гарантирования защиты памяти. Дополнительные ограничения накладываются диспетчером и стандартными расширениями. Динамический компоновщик гарантирует, что расширение видит только санкционированные события.

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

4.2.2.2. Автоматическая верификация

Метод автоматической верификации основан на представлении кода в определенном формате, называемом PCC (Proof-Carrying Code) [Nec97]. PCC-модуль содержит формальное доказательство соответствия кода данной политике безопасности. Истинность доказательства гарантирует безопасность кода, и программный модуль может выполняться без проверок во время выполнения. Политика безопасности ядра описывается с помощью аксиом и правил вывода в доказательствах, а также формулируется в виде предикатов логики первого порядка для каждой инструкции, в которых указывается, при каких обстоятельствах выполнение каждой инструкции будет оставаться безопасным. Приложение использует предикаты политики безопасности для вычисления предиката безопасности. Затем доказывается безопасность этого предиката по правилам логики первого порядка с использованием аксиом и правил вывода политики безопасности. Доказательство присоединяется к расширению. Ядро, в свою очередь, также вычисляет предикат безопасности и проверяет истинность ассоциированного доказательства для этого предиката. Проверка достоверности может быть сделана через простую и эффективную проверку типов (type checking).

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

4.3. Автоматическая адаптация

Автоматической адаптацией является адаптация, инициированная самой ОС. Можно рассматривать переносимость, реализуемую через условную компиляцию, как статическую форму автоматической адаптации. Обнаружив, на какой платформе операционная система должна быть скомпонована, система сама способна конфигурироваться, например, с помощью C препроцессора.

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

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

Система Synthetix предназначена для обеспечения специализированных реализаций сервисов операционной системы, генерируемых во время выполнения, на основании частичной оценки [CBK96]. Степень детализации и широта настраиваемости ограничены – проектировщик решает, какой сервис может быть конкретизирован и выбирает параметры конкретизации. Параметры сервиса вводятся с помощью инвариантов, с которыми связаны блоки защиты (guards). После проверки корректности параметров модуль сервиса замещается реализацией с новыми параметрами. Например, системный вызов открытия файла может возвращать конкретизированный код, обеспечивающий чтение файла. Такой код мог бы иметь инварианты, такие как размер блока на диске, последовательный доступ, монопольный доступ и т.п. Когда тот же самый файл позже открывается другим приложением, инвариант монопольного доступа становится некорректным из-за нарушения блока защиты, связанного с системным вызовом открытия файла.

Автоматический подход к настраиваемости исследовался в проекте VINO [SS97], который уже рассматривался выше, однако этот подход в VINO не был реализован. По мнению авторов для осуществления автоматической адаптации поведения системы необходимо получать сведения из следующих трех источников:

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

Вся информация собирается в реальных обстоятельствах, во время выполнения приложения. Затем эта информация анализируется с целью обнаружения чрезвычайных обстоятельств – например, ситуаций, когда потребление ресурсов превышает ожидаемую норму. В таких ситуациях адаптация проводится согласно известным эвристикам. Например, пусть некое приложение интенсивно листает страницы; тогда создаются трассы для запрашиваемых страниц. Результирующие трассы исследуются на предмет совпадения с хорошо известными моделями подкачки страниц. Если такая модель находится, инсталлируется соответствующий алгоритм. Проект VINO интересен тем, что в нем используются эвристики для хорошо известных случаев. В отличие от системы Synthetix, в которой адаптируются только функции и параметры, определенные проектировщиком, VINO поддерживает механизм, с помощью которого система могла бы разрабатывать и тестировать новые алгоритмы для вновь возникающих проблем.  

5. Сводные таблицы характеристик  свойств ОСРВ

Ниже следуют 4 таблицы.

 
ОСРВ

Архитектура

Предсказуемая производительность реального времени

Что реализует микроядро, размер (мин., мах.)

VxWorks

Клиент-сервер, микроядро WIND Microkernel

Приоритетное планирование в двух вариантах, наследование приоритетов

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

QNX

Клиент-сервер, микроядро и взаимодействующие процессы

Приоритетное планирование с выбором методов планирования. Наследование приоритетов

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

Windows CE

Модульная с ядром и необязательными компонентами

Приоритетное планирование

 

pSOS

Клиент-сервер, отсутствует протокол взаимодействия на основе сообщений, вместо него исппользуется программная шина

Приоритетное планирование, отсутствует наследование приоритетов

 

ChorusOS

Многослойная

Приоритетное планирование, мъютексы реального времени, таймеры с высокой разрешающей способностью, MIPC

Многозадачность, поддержка акторов, управление потоками, управление LAP, управление исключительными ситуациями, минимальное управления прерываниями

OSE

Многослойная

Приоритетное планирование, механизм предотвращения инверсии приоритетов

Приоритетное планирование, асинхронная передача сообщений, управление памятью, размер – 6К, 80К

OS-9

 

Приоритетное планирование, механизм предотвращения инверсии приоритетов

размер – 128К, 4MB

C EXECUTIVE

   

размер – 5К, 22К

CMX-RTX

 

Приоритетное планирование, механизм предотвращения инверсии приоритетов

размер – 1К, 6К

Inferno

     

INTEGRITY

 

Приоритетное планирование, механизм предотвращения инверсии приоритетов

размер –70К

INtime

   

LynxOS

 

размер –280К, 4М

Nucleus

   

RTX

 

Приоритетное планирование, наследование приоритетов

 

CORTEX

   

DeltaOS

 

размер – 10К


 

ОСРВ

Распределенная обработка

Сетевые протоколы

Файловые системы

VxWorks

 

TCP/IP, FTP, SMTP, NFS, PPP, RPC, Telnet, BSD 4.4 TCP/IP networking,IP, IGMP, CIDR, TCP, UDP, ARP, RIP v.1/v.2, Standard Berkeley sockets, zbufs, SLIP, CSLIP, BOOTP, DNS, DHCP, TFTP, NFS, ONC RPC, WindNet SNMP v.1/v.2c with MIB compiler - optional, WindNet OSPF

DOS-FS, NFS, TrueFFS

QNX

Прозрачный доступ к удаленным ресурсам. Упрощенное проектирование отказоустойчивых кластеров

TCP/IP, FTP, SMTP, SNMP, NFS, PPP, ATM, ISDN, RPC, Telnet, Bootp, tiny TCP/IP

RAM, Flash, QNX, Linux, DOS, CD-ROM, DVD, NFS, CIFS

Windows CE

     

PSOS

     

ChorusOS

Прозрачный доступ к удаленным ресурсам

IPv4, IPv6, PPP, NTP, BFP, DHCP NFS, RPC, LDAP, FTP, Telnet

UFS, FIFOFS, NFS, MSDOSFS, ISOFS, PROCFS, PDEVFS

OSE

Прозрачный доступ к удаленным ресурсам

TCP/IP, FTP, SMTP, SNMP, PPP, ATM, ISDN, X25, Telnet, Bootp, http-server, FTP/TFTP, NTP, various routing protocols

FAT, VFAT, FAT32

OS-9

 

TCP/IP, FTP, SMTP, SNMP, NFS, PPP, ATM, ISDN, X25, RPC, Telnet, Bootp, 802.11

 

C EXECUTIVE

 

TCP/IP, SNMP, PPP, SNMP

 

CMX-RTX

 

TCP/IP, FTP, SMTP, SNMP, NFS, PPP, Telnet, Bootp

 

Inferno

 

TCP/IP, FTP, PPP, Telnet, Bootp

 

INTEGRITY

 

TCP/IP, FTP, SMTP, SNMP, NFS, PPP, ATM, X25, RPC, Telnet, Bootp, http, pop3, IGMP, UDP, ARP, RIP, sockets, zero-copy stack, tftp

 

Intime

 

TCP/IP

 

LynxOS

 

TCP/IP, SNMP, NFS

 

Nucleus

 

TCP/IP, SMTP, SNMP, PPP, Telnet

 

RTX

 

TCP/IP, все протоколы, поддерживаемые  в. Windows

 

CORTEX

 

TCP/IP

 

DeltaOS

 

TCP/IP, FTP, SMTP, PPP, WAP, HTTP, HTML, XML, OSPF2, RIP2, CORBA

 

 

 
ОСРВ

POSIX

Среда разработки

Целевые платформы

VxWorks

POSIX 1003.1, .1b, .1c (включая pThreads)

 

x86, PowerPC, ARM, MIPS, 68K, CPU 32, ColdFire, MCORE, Pentium, i960, SH, SPARC, NEC V8xx, M32 R/D, RAD6000, ST 20, TriCore

QNX

POSIX 1003.1-2001, с потоками и расширенным. РВ

Windows, Solaris, Self-Hosted, QNX4, Linux

ARM, MIPS, PowerPC, SH4, Strong ARM, XScale, x86

Windows CE

   

ARMV4, SH3, SH4, MIPS, X86

pSOS

     

ChorusOS

POSIX-сигналы, сигналы реального времени, потоки, таймеры, очереди сообщений, семафоры. сокеты, разделяемая память

 

UltraSPARC II (CP1500 и CP20x0), Intel x86, Pentium, Motorola PowerPC 750 и 74x0 (mpc7xx), Motorola PowerQUICC I (mpc8xx) и PowerQUICC II (mpc8260)

OSE

 

Windows, Solaris, Linux

PowerPC, ARM, MIPS, StrongARM, Intel IXP2400, TI OMAP ARM7/C55, PowerQUICC, XScale, M-Core, Coldfire, Infineon C16x, Xc16x, E-Gold, Tricore, NEC V850, Atmel AVR, Mitusbishi M16C, Intel 8051, DSPs (TI C5/C6, Starcore, Agere 16k, LSI Logic ZSP, TigerShark, ST Micro)

OS-9

 

Windows

Motorola 68K, ARM/StrongARM, Intel IXP1200 Network Processor, MIPS, PowerPC, Hitachi SuperH, x86 or Intel Pentium, Intel IXC1100 XScale

C EXECUTIVE

 

Windows, Solaris

x86, PowerPC, ARM, MIPS, 68K, i960,SH,TI

CMX-RTX

 

Windows

x86, PowerPC, ARM, MIPS, практически все 8-, 16-, 32-бит. процессоры

Inferno

 

Windows, Solaris, Linux

x86, PowerPC, ARM, MIPS, Sparc

INTEGRITY

POSIX 1003.1-2003

Windows, Solaris, Linux, HPUX

x86, PowerPC, ARM, MIPS, ColdFire, StrongARMXScale

INtime

 

Windows

x86

LynxOS

POSIX.1/.1b/.1c

Sun Solaris, SunOS, RS6000, LynxOS Native/Hosted

x86, 68k, PPC, microSPARC, microSPARC II, PA-RISC

Nucleus

 

Windows

x86, PowerPC, ARM, MIPS, Nios, Nios II, ColdFire, 68k, H8S, SH, DSP, OMAP, XScale, MCore

RTX

 

Windows

x86

CORTEX

 

Windows, Solaris, Linux

Hitach H8/300H, H8/S и SH-1/2/3, TI TMS320C3X, POSIX.4 ( SUN SPARC)

DeltaOS

 

Windows, Linux

x86, PowerPC, ARM, MIPS, Dragonball


Таблица 1. Характеристики ОСРВ  

 

ОСРВ

Модель

Число уровн. приор.

Мах. число задач

Политики планирования

Состояния процесса/потока

Механизмы синхронизации/ взаимодействия

VxWorks

Задачи имеют 1 поток, все задачи выполняются в одном адресном пространстве без какой-либо защиты. Компонент VxVMI дает возможность каждой задаче выполняться в собственном. адресном пространстве

256

Ограничено размером доступной памяти

POSIX и Wind планирование, каждый вариант  имеет Preemptive priority и Round-robin

9

семафоры, мьютексы, условные переменные, флаги событий, POSIX-сигналы, очереди сообщений, почтовые ящики

QNX

процессы/потоки

64

4095 процессов, в каждом процессе до 32767 потоков

FIFO с приоритетами, циклическое, адаптивное, спорадическое планирование

14

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

Windows CE

процессы/потоки, нити (fiber), неуправляемые ядром

256

32 процесса, число потоков внутри  процесса ограничено доступной RAM

с приоритетами, циклическое между потоками на одном приоритетном уровне, если квант установлен в 0, поток выполняется до завершения

5: выполняется (running), приостановлен (suspended), спящий (sleeping), заблокирован (blocked), завершен (terminated)

критические секции, мьютексы, семафоры, условные переменные, события, передача сообщений (очереди, почтовые ящики), сигналы POSIX

pSOS

только потоки

256

Ограничено памятью

FIFO с приоритетами, циклическое

4: создан (created), готов (ready), выполняется (running), заблокирован (blocked)

семафоры, флаги событий, сигналы POSIX, очереди сообщений

ChorusOS

процессы/акторы/потоки

   

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

 

мьютексы, мьютексы реального времени, семафоры, флаги событий, LAP (Local Access Point), IPC (Inter-Process Communication) – сообщения, порты, группы портов, MIPC (почтовые. ящики), разделяемая память, очереди сообщений

OSE

 

32

 

FIFO с приоритетами

   

OS-9

процессы/потоки

65535

 

С приоритетами

   

C EXE-CUTIVE

 

32000

 

FIFO с приоритет., квантование времени

   

CMX-RTX

     

FIFO с приоритет., циклическое с приоритетами

   

INTEG-RITY

 

255

 

циклическое с приоритетами,ARINC 653

 

семафоры, мьютексы,

INtime

 

255

 

FIFO с приоритетами, циклическое с  приоритетами

   

LynxOS

 

512

 

FIFO с приоритетами, циклическое с  приоритетами, фиксированные приоритеты, квантование времени, динамические приоритеты

   

RTX

 

128

       

CORTEX

 

62

 

FIFO с приоритетами, циклическое с  приоритетами, разделение времени, другие

 

мьютексы и условия, мониторы и условия, вычислительные семафоры, события

DeltaOS

 

256

       

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