Лекция 7. Операционные системы реального времени (Лекции 2014-2015)
Описание файла
Файл "Лекция 7. Операционные системы реального времени" внутри архива находится в папке "Лекции 2014-2015". PDF-файл из архива "Лекции 2014-2015", который расположен в категории "". Всё это находится в предмете "(иус рв) архитектура управляющих систем реального времени" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
ВСТРОЕННЫЕ ИНФОРМАЦИОННОУПРАВЛЯЮЩИЕ СИСТЕМЫ РЕАЛЬНОГОВРЕМЕНИОперационные системыреального времениКафедра АСВК,Лаборатория Вычислительных КомплексовСодержание лекции•••••••Требования к ОС РВПонятие процесса и потока (thread)Планирование процессов с приоритетамиВзаимодействие процессов в ОС РВСлужба времени ОС РВПринципы построения ОС РВ.Примеры ОС РВ.Основные требования к ОС РВ••••Предсказуемость реакции имногозадачностьНаличие механизма приоритетовпроцессов и вытеснения (preemption)Предсказуемые механизмы синхронизациии взаимодействияПредсказуемые задержкиМалые задержкиОсновные виды задержек••••Переключение контекстаРеакция на прерываниеВыполнение системного вызоваНачальная загрузка системы•Потоки (threads) вместо процессов – как можно меньшийконтекст• работа без виртуальной памяти (без преобразованияадресов)Основные требования к ОС (2)••••Минимальность по используемой памятиЗагрузка из ПЗУОтсутствие дисковой памятиНастраиваемость на аппаратуру (Пакетподдержки модуля – BSP)• Соответствие отраслевым стандартам(POSIX 1003.1a,b,c; ARINC-653, и т.д.)Соответствие требованиям по безопасности (DO178, …)Процессы и потоки (threads)– Исполняемый файл – тело процесса– Функция-тело потока– Параметры планирования• Дисциплина планирования• приоритет• Признак наследования от родителя– контекст (стек, куча, дескрипторы, …)Приоритетное планирование(встроенный планировщик ОС)• Имеется диапазон значений приоритетов (256для ОС-2000)• Для каждого приоритета – своя очередь• Управление получает поток в голове очереди снаивысшим приоритетом• Появился готовый поток с большим приоритетом=> вытеснение• SCHED_RR => перепланир по истечении квантавремени (карусель, round-robin)• sched_yield() – явная отдача управленияПланирование периодическихзадач• Дано:– Набор задач T1,T2, … ,Tn– Период Pi, i=1..n– Директивный срок Di– Время выполнения CiCi ≤ Di ≤ P i• Требуется:– Проверить возможность планирования безнарушения директивных сроков– Назначить приоритеты потокамПланирование Rate Monotonic• Каждой задаче – своё значение приоритета(неизменное)• Наибольший приоритет – задаче снаименьшим периодом• Достаточное условие планируемостиU ≤ n(21/n - 1)U =sum(Ui), Ui = Ci/Pi;Планирование EDF(Earliest Deadline First)• Меньший текущий директивный срок =>больший приоритет• Необходимое и достаточное условиепланируемости:U<1Планирование: примерА: 10 мс / 30 мс; B: 15/40; C: 5/50Планирование: пример (2)Здесь для A: 15 / 40 мсСправляется только алгоритм EDFВзаимодействие процессов(потоков)Очереди сообщений• mq_open() // имя очереди const char*• mq_close()• mq_send() // длина сообщения, приоритет• mq_receive()– В зависимости от параметров очереди – либоожидание на пустой очереди, либо ошибка• mq_notify() // установить сигнал при записи впустую очередьСемафорыАналогично Unix без реального времениsem_open(), sem_close()sem_post()sem_wait(), sem_trywait()Очередь к семафору – по приоритетампотоковМьютексы•••••#include <pthread.h>pthread_mutex_init()pthread_mutex_lock()pthread_mutex_trylock()Освободить mutex может толькозахвативший его поток• «Упрощённый семафор»Сигналы реального времениПо сравнению с «обычными» сигналами:• расширенный диапазон;• постановка в очередь;• расширенные возможности заданияреакции (маска блокировки при обработкесигнала)Разделяемая память• общие сегменты памяти• Файлы, отображённые на памятьПредставление времени#include <time.h>struct timespec {time_t tv_sec;int tv_usec; // нано};clock_settime()clock_gettime()clock_getres()struct tm {}time()sleep()Разрешение часов:Вычислители семействаБагет – 4 мксx86 –rdtsc – время в тактахпроцессораВремя в ОС РВ• Часы реального времени;• создание однократных и периодическихтаймеров• время первого срабатывания– От момента запуска– По значению часов• интервал срабатыванияПринципы построения ОС РВ• С монолитным ядром (как традиционныйUnix)– проблемы с детерминированностью обработкипрерываний и работы с драйверами устройств• С микроядром– службы ОС оформляются как процессыПримеры ОС РВКоммерческие• ОС2000 (НИИСИ РАН)https://www.niisi.ru/otd07.htm• vxWorks (WindRiver Software, www.wrs.com)• QNX (QNX Software)• LynxOS (LunuxWorks)• Расширение Windows NT• WinCEБесплатные с открытым исходным кодом• RTEMS (www.rtems.org)• uCOSРасширения Linux• RTLinux• RTAILinux для ВС РВ (продолжение)• RTlinux• потоки РВ – в режиме ядра;• обычное ядро Linux – задача низкогоприоритета• Требуется переработка драйверов длярежима РВЛитература•И.Б.
Бурдонов, А.С. Косачев, В.Н. Пономаренко. Операционные системы реального времени. –М.:ИСП РАН. – 2006. URL: http://www.ispras.ru/preprints/docs/prep_14_2006.pdfПредставительный обзор состояния дел в области ОС РВ.•Bill O. Gallmeister. POSIX. 4: Programming for the Real World. – O’Reilly. – 1995. URL:http://www2.fisica.unlp.edu.ar/electro/temas/p7/POSIX4.pdfКлассическая книга по интерфейсам POSIX для систем РВ (ранее POSIX 1003.1 именовался POSIX.4)•К.Е. Климентьев.
Операционные системы реального времени. Обзорный курс лекций для студентовзаочной формы обучения по специальности 230102 (Самарский государственный аэрокосмическийуниверситет). URL: http://www.ssau.ru/files/resources/sotrudniki/rts2008.pdfРассмотрен пример системы РВ и основные характеристики ОС РВ.•C.L. Liu, J.W. Layland. Scheduling algorithms for multiprogramming in a hard real-time environment //JACM.
– V.20. – No 1. – 1973. – PP. 46-61Доказательство свойств алгоритмов планирования RMS и EDF•Е.В. Ляпунцова. Системы реального времени. URL: http://liapuntsova.ru/srvЕщё один курс лекций по ОС РВ•URL: http://www.rtsoft.ru/press/articles/detail.php?ID=1486Результаты измерения времени реакции ОС РВ на различных аппаратных платформах.