Стандарты ОСРВ

Download Report

Transcript Стандарты ОСРВ

Стандарты ОСРВ
Стандарты ОСРВ
•
•
•
•
•
•
POSIX
OSEK/VDX
DO-178B
ARINC-653
ED-12B
ITRON: ITRON1, µITRON, ITRON2
POSIX
• Portable Operating System Interface
• developed by the IEEE and The Open Group
• Base Definitions: This include general terms, concepts
and interfaces common to entire standard.
• System Interfaces: This comprises the definitions for
system service functions for the C programming
language, function and portability issues, error handling
and recovery.
• Shell and Utilities: It contains the definitions for a
standard source code-level interface to command
interpretation services.
• Rationale: It contains information that does not fit well
into the rest of the document structure.
Стандарт 1003.1a (OS Definition)
• содержит базовые интерфейсы ОС
• поддержка и управление следующими объектами
–
–
–
–
–
–
–
–
–
–
–
–
единственный процесс
множественные процессы
сигналы,
группы пользователей
файловая система
файловые атрибуты
файловые устройства
блокировки файлов
устройства ввода/вывода
системными базами данных
каналами
поддержка языка C.
Стандарт 1003.1b (Realtime Extensions)
содержит расширения реального времени:
• сигналы реального времени
• планирование выполнения
• таймеры, синхронный и асинхронный
• ввод/вывод, ввод/вывод с приоритетами
• синхронизация файлов
• блокировка памяти
• разделяемая память
• передача сообщений
• семафоры.
POSIX1003.1b (cont)
Стандарт требует поддержки не менее 32
уровней приоритетов.
Стандарт требует поддержки не менее
трех политик планирования обработки
процессов, включая:
• SCHED_FIFO – процессы выполняются
до завершения
• SCHED_RR – round robin – процессу
выполняется квант времени
• SCHED_OTHER – иная
Стандарт 1003.1c (Threads)
•
•
•
•
управление потоками
планирование с учетом приоритетов
мьютексы
приоритетное наследование в
мьютексах
• условные переменные (condition
variables).
Стандарт 1003.1d расширения реального
времени
•
•
•
•
•
•
порождение новых процессов (spawn)
спорадическое планирование
мониторинг процессов и потоков
времени выполнения
таймауты функций блокировки
управление устройствами и
прерываниями.
OSEK/VDX
• для систем, применяющихся в
автомобильной промышленности
• состоит из трех частей
– стандарт для операционной системы (OS),
– коммуникационный стандарт (COM)
– стандарт для сетевого менеджера (NM).
+ реализационный язык (OIL)
OSEK/VDX
main architectural choices:
• Scalability
• Portability of software
• Configurability
• Statically allocated OS
• Support for time triggered architectures
OSEK/VDX
• architecture - traditional fixed priority
approach
• basic task (BT)
• extended task (ET)
• extended tasks are basic tasks that can
react to external asynchronous event
OSEK/VDX conformance classes
• BCC1
– Only basic tasks limited to one activation request per task and
one task per priority, while all tasks have different priorities.
• BCC2
– Like BCC1, plus more than one activation request per task and
more than one task per priority.
• ECC1
– Like BCC1, plus extended tasks.
• ECC2
– Like ECC1, plus more than one task per priority and multiple
requesting of task activation allowed for basic tasks.
OSEK/VDX Interrupt processing
• ISR category 1
– Прерывания обрабатываются
пользовательской программой. ОС о них не
знает. Вызывать примитивы ОС из ISR не
рекомендуется
• ISR category 2
– Прерывания обрабатываются ядром ОС и
ядро вызывает пользовательский
обработчик.
• Full Preemptive Scheduling
– Задача может быть прервана на любой
выполняемой инструкции более
приоритетной задачей
• Non Preemptive Scheduling
– Задача прерывается только на системных
вызовах: завершение, ожидания события,
явная отдача процессора
• Mixed Preemptive Scheduling
– Могут параллельно выполняться и те и те
OSEK Priority Ceiling
• every resource as assigned a ceiling that is the
maximum priority of the tasks (and ISRs) that
use the resource;
• when a task requires a resource, its current
priority is raised to the ceiling of the resource;
• when a task releases a resource, the priority of
this task is reset to the priority which was
dynamically assigned before requiring that
resource.