Встроенные Системы Часть 9. ОС Реального Времени Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov vvv@oktetlabs.ruvvv@oktetlabs.ru

Презентация:



Advertisements
Похожие презентации
Встроенные Системы Часть 3. Прерывания Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov
Advertisements

Разработка библиотеки нитей POSIX реального времени Магистерская диссертация Студент: Фёдоров Александр, 418 гр. Научный руководитель: Гилязов С.С.
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ Real-time operating system.
Учебный курс Основы операционных систем Лекция 2 кандидат физико-математических наук, доцент Карпов Владимир Ефимович.
Операционная система реального времени Выполнила студентка Группы КИС-141 Кравец Виктория.
Кооперация процессов Процессы Бленда Николай Андреевич 2009.
Программные комплексы для встроенных систем реального времени: формирование ключевых понятий (сигналы – задачи – контексты – ресурсы) Никифоров Виктор.
Процессы и потоки. Процессы В общем представлении, процесс - это программа, выполняющаяся в оперативной памяти компьютера. Реально, все гораздо сложней.
Операционные системы Процессы и потоки Скрипов Сергей Александрович 2009.
Выполнили: Мартышкин А. И. Кутузов В. В., Трояшкин П. В., Руководитель проекта – Мартышкин А. И., аспирант, ассистент кафедры ВМиС ПГТА.
Встроенные Системы Часть 6. Функциональные блоки Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov
Системные механизмы Windows. Системные механизмы диспетчеризация ловушек, в т.ч. прерываний, DPC (deferred procedure call), APC (asynchronous procedure.
Краткий обзор ОСРВ. RTLinux Встраивается в обычный Linux RTLinux kernel находится между ядром Linux и «железом» RTLinux обрабатывет все прерывания независимо.
Встроенные Системы Часть 4. Шины, память, кэш, DMA Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov
Прерывания Определение прерывания Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств.
Управление процессами. Определение процесса. Основные понятия Процесс совокупность машинных команд и данных, которая обрабатывается в рамках вычислительной.
Получение контроля над объектом атаки Местонахождение атакующего В разных сегментах с объектом атаки Используемые уязвимости Цель Ошибки реализации Степень.
ОПЕРАЦИОННЫЕ СИСТЕМЫ Ершов Б.Л. Российский государственный торгово-экономический университет ИВАНОВСКИЙ ФИЛИАЛ Кафедра математики, экономической информатики.
Учебный курс Операционные среды, системы и оболочки Лекция 5 Лекции читает доктор технических наук, профессор Назаров Станислав Викторович.
Операционная система. Базовые понятия Операционная система – это комплекс программ, обеспечивающий контроль за существованием, распределением и использованием.
Транксрипт:

Встроенные Системы Часть 9. ОС Реального Времени Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov

Какие Бывают RTOS RTEMS ( VxWorks ( eCos ( Расширения реального времени для Linux, Windows NT «Самодельные» (proprietary) Другие коммерческие ОСРВ ( )

RTEMS Real-Time Executive for Missile Systems Military Systems Multiprocessor Systems Открытые исходные тексты Лицензия – похожа на GPL (RTEMS-приложения не попадают под действие) Нет лицензионных отчислений Хорошо переносима Богатый набор функциональных возможностей Зрелая, хорошо спроектированная система

Концепции RTEMS Объекты Определено несколько классов объектов (задачи, семафоры, …). Объекты имеют идентификатор. Объекты могут быть именованы. Объекты могут располагаться на разных узлах (процессорах). Определен набор операций над объектами.

Концепции RTEMS Менеджеры

Концепции RTEMS Интерфейсы RTEMS содержит внутреннее суперядро (score), не видимое для пользователя. На основе суперядра реализованы различные интерфейсы программирования: RTEMS API (основано на RTEID) POSIX API ITRON API

Задачи RTEMS Задача – нить исполнения кода, которая может претендовать на системные ресурсы. Задача представлена объектом Состояния задачи: Исполняемая Готовая к исполнению Блокированная Незапущенная Несуществующая (удаленная)

Изменения Состояний Задач

Приоритет Задачи Приоритет задачи – число Готовая задача с наибольшим приоритетом получает управление. Процессор разделяется между готовыми задачами с равным приоритетом. Приоритет можно изменять динамически.

Режимы и Атрибуты Задачи Режимы задачи: Преемственность (preemption) Разделение времени (timeslicing) Обработка асинхронных сигналов Уровень прерываний Атрибуты задачи Работа с плавающей точкой Нужно ли сохранять контекст FPU? Локальная или Глобальная Виден ли объект на других узлах многопроцессорной системы?

Менеджер Задач Создание Задачи Получение ID по имени Запуск и перезапуск задачи Приостановка и возобновление ВременнАя задержка Изменение приоритета задачи Изменение режима задачи Работа с «блокнотом» задачи Переменные задачи Удаление задачи

Таймер Объект «Таймер» позволяет спланировать выполнение действий в некоторый момент в будущем. С таймером связана процедура, которая будет вызвана в указанный момент времени. Процедура вызывается в контексте прерывания или специальной задачи Timer Server (в зависимости от типа таймера).

Менеджер Таймера Создание таймера Получение ID по имени Запуск интервального таймера Запуск будильника Отмена таймера Перезапуск таймера Запуск задачи обслуживания таймеров Удаление таймера

Семафор Объект, позволяющий синхронизировать исполнение задач и обеспечивающий защиту от одновременного доступа. С семафором связана целая переменная- счетчик. Бинарный семафор – счетчик принимает значения 0 и 1. При ожидании семафора может быть установлен таймаут.

Инверсия Приоритетов Низкоприоритетная задача захватила ресурс Высокоприоритетная задача ожидает освобождения этого ресурса Задача со средним приоритетом вытеснила низкоприоритетную задачу

Инверсия Приоритетов - Решения Наследование приоритета: Приоритет владеющей ресурсом задачи поднимается до уровня самой высокоприоритетной задачи, ожидающей этот ресурс. Подъем приоритета Приоритет получившей ресурс задачи поднимается до уровня, установленного при создании семафора.

Атрибуты Семафоров RTEMS_FIFO (default)/ RTEMS_PRIORITY RTEMS_BINARY_SEMAPHORE/ RTEMS_COUNTING_SEMAPHORE/ RTEMS_SIMPLE_BINARY_SEMAPHORE RTEMS_NO_INHERIT_PRIORITY (default)/ RTEMS_INHERIT_PRIORITY RTEMS_PRIORITY_CEILING/ RTEMS_NO_PRIORITY_CEILING default) RTEMS_LOCAL (default)/RT EMS_GLOBAL

Менеджер Семафоров Создание семафора Получение ID семафора по имени Захват семафора Освобождение семафора Удаление семафора

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

Менеджер Сообщений Создать очередь сообщений Получить ID очереди по имени Получить сообщение из очереди можно указать таймаут Поставить сообщение в очередь Поставить срочное сообщение в начало очереди Послать сообщение всем ожидающим задачам Узнать количество ожидающих сообщений Сбросить все сообщения из очереди

События События – простейший механизм синхронизации (не объект!) События направляются задачам Задачи могут ожидать наступления одного или всех событий из указанного множества События независимы и не несут данных События не сериализуются При ожидании наступления событий может быть указан таймаут

Менеджер Событий Послать множество событий задаче Ожидать условия поступления событий Наступление одного или всех событий из множества Сбрасывать или нет события? Таймаут

Раздел Памяти (Partition) Раздел памяти – объект, с которым связан непрерывный участок памяти, разделенный на буферы фиксированного размера. Раздел обеспечивает выделение и освобождение буферов. Раздел организован как список свободных буферов. Выделение и освобождение буфера – простая операция с предсказуемым временем.

Менеджер Разделов Создать раздел Получение ID раздела по имени Выделить буфер Неблокируемая операция Вернуть буфер Удалить раздел

Регион Объект «Регион» позволяет динамически распределять память сегментами переменного размера из непрерывного участка («куча»). Адрес сегмента выравнивается на заданный размер страницы. Задачи могут ожидать появления свободного пространства (по очереди или по приоритетам). Может быть указан таймаут.

Менеджер Регионов Создать регион Получить ID региона по имени Удалить регион Добавить участок памяти в регион Выделить сегмент из региона Вернуть сегмент в регион Получить размер сегмента

Менеджер Прерываний Установить процедуру обработки прерывания (и узнать адрес текущего обработчика) Разрешить прерывания Запретить прерывания Мгновенное разрешение прерываний Определить текущий контекст (задача или обработчик прерываний)

Ограничения на Обработчик Прерываний Обработчик прерываний не должен вызывать директивы, которые могут привести к блокировке можно Послать сообщение Послать событие Освободить семафор Приостановить/возобновить задачу Нельзя Захватить семафор Ожидать события

Расширения Пользователя Объект, позволяющий связать обработчики со следующими событиями: Создание задачи Запуск задачи Перезапуск задачи Удаление задачи Переключение между задачами Начало выполнения задачи Окончание выполнения тела задачи Фатальная ошибка

Периодические Задачи Периодическая задача – задача, которая должна выполняться через заданный интервал – период. Объект rate monotonic period позволяет возобновлять выполнение задачи строго через указанный период, вне зависимости от времени работы задачи.

Менеджер Периодических Задач Создать период Получить идентификатор периода по имени Отменить период Завершить текущий период и начать следующий Получить состояние периода (сколько времени осталось до окончания и т.д.) Удалить период

Другие Менеджеры Менеджер Инициализации Менеджер Часов Менеджер Сигналов Менеджер Двухпортовой Памяти Менеджер Ввода/Вывода Менеджер Фатальных Ошибок Менеджер Мультипроцессорных Систем