- •Особенности ОСРВ. Архитектура
- •Ядро «монолитной» архитектуры
- •«Микроядерная» архитектура
- •ОС РВ, необходимые тебования
- •Стандарт POSIX
- •POSIX – расширения для систем реального времени
- •Расширения реального времени – нитки
- •Расширения реального времени - таймеры
- •Расширения реального времени - планирование
- •Расширения реального времени – синхронизация и взаимодействие
- •Расширения реального времени – Разделяемая память
- •Совместимость
Особенности ОСРВ. Архитектура
|
|
|
|
|
«Микроядерная» архителтура (СРВ) |
|
|
|
|
|
|
Принцип «клиент-сервер» - IPC – |
|
|
Приложение |
|||||
|
|
механизм сообщений |
||||
|
|
. . . |
|
|
– |
|
|
Задача_1 |
Задача_N |
|
масштабируемость (scalability); |
||
|
|
|
|
|
– |
высокая надежность; |
|
|
|
|
|
||
|
|
|
|
|
Сервисы (API) |
Приложение |
|
|
Ядро |
|
||
Задача_1 . . . |
Задача_N |
||
Функции ОС |
|||
|
|
||
Аппаратная платформа |
Сервисы (API) |
||
|
|
|
|
|
|
|
С. памяти |
|
С. процессов |
|
|
|
|
«Монолитная» архитектура |
|||||||
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
Файловый С. |
|
||
– |
|
|
С. сети |
|
|||||
жесткая связь между функциями |
|
|
|
|
|
|
|
||
|
|
Микроядро |
|
||||||
|
|
ОС, |
|
|
|
||||
– |
|
|
|
|
|
|
|
||
сложность расширения |
|
|
|
|
|
|
|
||
|
|
Аппаратная платформа |
|
||||||
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(С – сервер) |
5. Операционные системы реального времени |
1 |
|
2019 v.01 |
||
|
Ядро «монолитной» архитектуры
Пространство |
|
|
|
|
|
|
|
|
|
|
|
||
пользователя |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
API |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Управление |
|
|
Управление |
|
|
Управление |
|
|
Стэк |
|
|
|
|
процессами |
|
|
памятью |
|
|
файлами |
|
|
протоколов |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
Архитектурно-зависимая |
|
|
Драйверы устройств |
|
|
||||||
|
|
|
часть |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|||
Пространство |
|
|
|
|
|
|
|
|
|
|
|
||
ядра |
|
|
|
Аппаратная платформа |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Управление процессами – создание/удаление, диспетчеризация, защита памяти, взаимодействие
Управление памятью – страничная организация, свопинг Управление файлами – закрыть/открыть, чтение/запись, кэширование
Стэк протоколов – сокеты, TCP, IP
5. Операционные системы реального времени |
2 |
|
2019 v.01 |
||
|
«Микроядерная» архитектура
Сервер |
Приложения |
||
памяти |
|||
|
|
||
Файловый |
Ядро |
Стэк |
|
сервер |
протоколов |
||
|
Драйверы |
|
|
|
устройств |
|
Аппаратная платформа
Ядро – управление потоками, межмодульное взаимодействие (механизм сообщений). Не планируется диспетчером (!), работает по событиям.
5. Операционные системы реального времени |
3 |
|
2019 v.01 |
||
|
ОС РВ, необходимые тебования
(Мартин Тиммерман)
1.Многозадачность с поддержкой вытесняющей диспетчеризации
2.Поддержка приоритетного управления
3.Наличие предсказуемых механизмов синхронизации,
4.Поддержка протоколов борьбы с инверсией приоритетов.
5.Поведение ОС должно быть известным и предсказуемым (задержки обработки прерываний, задержки переключения задач, задержки драйверов и т.д.); это значит, что во всех сценариях рабочей нагрузки системы должно быть определено максимальное время отклика.
И.Б. Бурдонов Операционные системы реального времени http://www.ispras.ru/preprints/docs/prep_14_2006.pdf
5. Операционные системы реального времени |
4 |
|
2019 v.01 |
||
|
Стандарт POSIX
Portable Operating System Interface
•Цель обеспечение переносимости приложений на уровне исходного кода
•«Базируется» на UNIX, IEEE P1003, первоначальный вариант - 1990 г, включают набор более чем из 30 стандартов.
•Для ОСРВ наиболее важны три из 1003.1a, 1003.1b, 1003.1c
5. Операционные системы реального времени |
5 |
|
2018 v.01 |
||
|
POSIX – расширения для систем реального времени
•Multithreading Model; (POSIX.1 process model – ориентирована на повышение эффективности)
•Real-Time Extensions диспетчеризация, синхронизация, разделяемая память, таймеры, асинхронный ввод/вывод
•Additional Real-Time Extension timeout, спорадический сервер, управление прерываниями, управление устройствами
•Real-Time Application Environment
5. Операционные системы реального времени |
6 |
|
2018 v.01 |
||
|
Расширения реального времени – нитки
•Основной механизм параллельности
•Функциональность:
–Создание/инициирование/уничтожение
–Управление ресурсами нитки
–Планирование выполнения
–Изменение/просмотр параметров (приоритет, дисциплина планирования, адрес и размер стека, и т.д)
5. Операционные системы реального времени |
7 |
|
2018 v.01 |
||
|
Расширения реального времени - таймеры
•Реальное время доступно для нитки
•Функциональность:
–получение/изменение времени часов
–поддержка до 32-х таймеров - создание, запуск, уничтожение;
–разрешение таймера – наносекунды
5. Операционные системы реального времени |
8 |
|
2018 v.01 |
||
|
Расширения реального времени - планирование
•Планирование с фиксированными приоритетами; количество уровней не менее 32
•Для ниток имеется возможность:
–устанавливать и просматривать собственные приоритеты и приоритеты других ниток
–выбирать FIFO или round-robin дисциплины обслуживания очереди готовых
•Предусматривается принципиальная возможность поддержки динамических приоритетных алгоритмов, например - EDF (приводит к высоким накладным расходам)
•Различные нитки внутри одного процесса могут планироваться
всоответствии с различными дисциплинами планирования
5. Операционные системы реального времени |
9 |
|
2018 v.01 |
||
|
Расширения реального времени – синхронизация и взаимодействие
•Семафоры (semaphores)
–простота реализации, низкие накладные расходы
–допускает инверсию приоритетов
•Mutex
–поддерживает как протокол наследования приоритетов, так и протокол предельных приоритетов (priority ceiling протокол)
•Условные переменные (condition variables)
•Механизм сообщений
–приоритетные сообщения
–send/receive: неблокирующий
–механизм сигналов для случая ниток, ждущих ответа
5. Операционные системы реального времени |
10 |
|
2018 v.01 |
||
|