- •Архитектура ОС
- •Особенности ОСРВ (RTOS)
- •RTOS и ОS общего назначения
- •Прмышленные RTOS
- •Процессы и нитки
- •Адресное пространство нитки
- •Стандарт POSIX
- •Расширения реального времени – нитки
- •Расширения реального времени - таймеры
- •Расширения реального времени - планирование
- •Расширения реального времени – синхронизация и взаимодействие
- •Расширения реального времени – Разделяемая память
Архитектура ОС
Приложение Задача_1 . . . Задача_N
Сервисы (API)
Функции ОС
Аппаратная платформа
«Монолитная» архитектура
–жесткая связь между функциями ОС
–плохая переносимость;
–сложность расширения
Принцип «клиент-сервер»
–повышенная избыточность;
–необходимость поддержки защиты памяти;
–масштабируемость (scalability);
–высокая надежность;
Приложение Задача_1 . . . Задача_N
Сервисы (API)
С. памяти |
|
С. процессов |
|
|
|
С. сети |
|
Файловый С. |
Микроядро
Аппаратная платформа
(С – сервер)
12. Архитектура RTOS |
1 |
2002 v.0.1 |
|
Особенности ОСРВ (RTOS)
•Соответствие стандартам
–Стандарты - Real-Time POSIX, ITRON APIs
•Модульность и масштабируемость
•Предсказуемость и высокая производительность
–Время переключения контекста, latency прерываний, latency семафорных операций get/release latency, etc
•Оптимизация системных вызовов
–Невытесняемые (неделимые) участки кода должны быть минимизированы
•Приоритетная и планируемая обработка прерываний
•Поддержка планирования реального времени
•Поддержка управления инверсией приоритетов
•Поддержка таймеров с высокой разрешающей способностью
•Упрощенное управление памятью
12. Архитектура RTOS |
2 |
2002 v.0.1 |
|
RTOS и ОS общего назначения
Особенность
Виртуальная память
Распределение ресурсов
Планирование
Диспетчеризация
Ввод/вывод
Передача данных между задачами
Файловая система
RTOS |
ОС общего |
|
назначения |
||
|
нет
статическое
приоритетное
вытеснение
реализуется приложением
разделяемая память; ускоряется посредством передачи указателей
Нет / использование ограничено
да
динамическое
fairness («по справедливости»)
time-slicing/ вытеснение
через драйверы
использование сервисов pipe, mailbox и т.п.
да
12. Архитектура RTOS |
3 |
2002 v.0.1 |
|
Прмышленные RTOS
Коммерческие RTOS
–LynxOS
–pSOSystem
–QNX/Neutrino
–VRTX
–VxWorks
–. . .
«Открытые» RTOS
–eCOS
–RT Linux
12. Архитектура RTOS |
4 |
2002 v.0.1 |
|
Процессы и нитки
Приложение Задача_1 . . . Задача_N
Сервисы (API) Процесс 1 . . . Процесс 1
Микроядро
Аппаратная платформа
Процесс (process)
–Выполняется в независимом, защищенном адресном пространстве
Нитка (thread)
–Выполняется в адресном пространстве процесса
–Планируется как самостоятельная единица (наравне с процессом)
|
|
|
|
|
|
|
|
|
|
|
. . . |
|
|
|
|
|
|
Задача_1 |
|
||||||||
|
|
|
Нитка_1 |
|
|
|
Нитка_N |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сервисы (API) |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
Процесс 1 |
. . . |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
Нитка_1 |
|
|
|
Нитка_1 |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Микроядро
Аппаратная платформа
12. Архитектура RTOS |
5 |
2002 v.0.1 |
|
Адресное пространство нитки |
|
|||
|
Адресное пространство |
Дескрипторы |
|
|
|
процесса |
|
||
|
|
|
||
Нитка 2 |
routine_2() |
var1 |
Указатель стека |
Stack |
|
var2 |
Счетчик адреса |
|
|
|
|
|
Регистры |
|
Нитка 1 |
routine_1() |
var1 |
Указатель стека |
Stack |
|
|
Счетчик адреса |
|
|
|
|
|
Регистры |
|
Код |
main() |
|
ID процесса |
|
процесса |
routine_1() |
|
|
|
|
|
|
||
|
routine_2() |
|
|
|
Данные |
array_1 |
|
|
|
процесса |
array_2 |
|
|
|
Куча |
|
|
|
|
12. Архитектура RTOS |
|
6 |
||
2002 v.0.1 |
|
|
|
|
Стандарт POSIX
•POSIX Portable Operating System Interface
–Стандарт API
–POSIX 1003.1: определяет основные функции UNIX OS
•Расширения реального времени POSIX
–POSIX 1003.1b: real-time extension
–Приоритетное планирование, модифицированные сигналы, таймеры с высокой разрешающей способностью, синхронный/асинхронный ввод/вывод и т.д.
–POSIX 1003.1c: thread extension
–Создание ниток, управление нитками
12. Архитектура RTOS |
7 |
2002 v.0.1 |
|
Расширения реального времени – нитки
•Основной механизм параллельности
•Функциональность:
–Создание/инициирование/уничтожение
–Управление ресурсами нитки
–Планирование выполнения
–Изменение/просмотр параметров (приоритет, дисциплина планирования, адрес и размер стека, и т.д)
12. Архитектура RTOS |
8 |
2002 v.0.1 |
|
Расширения реального времени - таймеры
•Реальное время доступно для нитки
•Ситема может иметь несколько таймеров
•Функциональность:
–получение/изменение времени часов
–поддержка до 32-х таймеров - создание, запуск, уничтожение;
–разрешение таймера – наносекунды
12. Архитектура RTOS |
9 |
2002 v.0.1 |
|
Расширения реального времени - планирование
•Планирование с фиксированными приоритетами; количество уровней не менее 32
•Для ниток имеется возможность:
–устанавливать и просматривать собственные приоритеты и приоритеты других ниток
–выбирать FIFO или round-robin дисциплины обслуживания очереди готовых
•Предусматривается принципиальная возможность поддержки динамических приоритетных алгоритмов, например - EDF (приводит к высоким накладным расходам)
•Различные нитки внутри одного процесса могут планироваться
всоответствии с различными дисциплинами планирования
12. Архитектура RTOS |
10 |
2002 v.0.1 |
|