- •X Window - это сетевая система.
- •Типы сообщений и буфферизация сообщений (“The X protocol” and “Buffering”).
- •Буферизация сообщений.
- •Системы реального времени. Общие понятия. Крайние сроки. Мягкие и жесткие системы. Области применения систем реального времени.
- •Общие понятия. Крайние сроки.
- •Планирование задач в системах реального времени. Понятие оптимального алгоритма планирования. Классификация алгоритмов планирования. Примеры алгоритмов планирования.
- •Алгоритмы планирования со статическим расписанием
- •Динамические алгоритмы планирования с динамическими приоритетами
- •Динамические алгоритмы планирования со статическими приоритетами
Буферизация сообщений.
При отправке запросов Xlib с целью увеличения производительности осуществляет их буферизацию. Т.е вместо того чтобы каждый раз ожидать освобождения сети для отсылки следующего запроса, клиент формирует группы, для того чтобы отправить их в дальнейшем. Это возможно благодаря тому, что, как уже говорилось, не каждый запрос требует ответа. Отсылка запросов группами уменьшает накладные расходы на передачи пакетов по сети. Клиент отсылает буфер заполненный запросами в сторону сервера в следующих 3 случаях:
приложение ожидает события, а его еще нет в буфере событий
запрос требует ответа
принудительно по желанию приложения (полезно, например, для игр, где картинка на экране должна меняться и без действий пользователя)
Поскольку Xlib буферизует как входящие (ответы и события), так и исходящие (запросы) пакеты, то при отладке надо иметь ввиду, что какие-то функции Xlib могут быть вызваны до того, как сервер обнаружит ошибку в запросе, предшествующем этим вызовам.
Системы реального времени. Общие понятия. Крайние сроки. Мягкие и жесткие системы. Области применения систем реального времени.
Определение. Система, корректность функционирования которой определяется не только корректностью выполнения вычислений, но и временем, в которое получен требуемый результат. Если требования по времени не выполняются, то считается, что произошел отказ системы. При этом в системе должны существовать средства проверки соблюдения временных ограничений и, кроме того, заранее неочевидно, как эти временные ограничения соблюсти.
Параметры RTS:
Количество типов событий. Чем больше эта величина, тем сложнее СРВ
Поведение событий во времени (периодические, непериодические)
Крайние сроки обработки событий (понятие "крайнего срока" будет введено позднее)
Области применения СРВ:
Системы управления технологическими процессами (например, управление реакторами на атомнымых электростанциях, переработка различных материалов/сырья и т.п.)
Системы медицинского мониторинга и жизнеобеспечения
Военные системы (системы наведения, разведки и пр.)
Робототехника (например, конвейерная сборочная линия)
Подсистемы транспортных средств (антиблокировка тормозов, управление зажиганием, автопилоты на самолетах)
Системы сбора данных в научных исследованиях
Системы охранной сигнализации
Общие понятия. Крайние сроки.
Как уже говорилось, СРВ - это программно-аппаратный комплекс, осуществляющий мониторинг какого-то объекта и/или управление им в условиях временных ограничений. Возникающие на объекте события подлежат обработке в СРВ. Будем сопоставлять каждому типу события задачу.
Определение. ЗАДАЧА (TASK) - блок программного кода, ответственный за обработку тех или иных событий, возникающих на объекте управления.
Задача может быть "оформлена" в виде:
Отдельного процесса
Потока управления внутри процесса (нити, легковесного процесса)
Обработчика прерывания/подпрограммы
Определение. РАБОТА ЗАДАЧИ (JOB) - процесс исполнения блока программного кода в ходе обработки события.
Аналогия...
Каждая работа задачи характеризуется следующими временными параметрами:
r (Release Time) - момент времени, когда возникает необходимость в передаче управления задаче; можно считать, что это момент события.
d (Absolute Deadline) - абсолютный крайний срок, момент времени, к которому задача должна завершить очередную работу.
s (Start Time) - момент времени, когда задача начала исполняться на процессоре
с (Complition Time) - момент времени, когда задача закончила работу, обработав событие
D (Relative Deadline) - относительный крайний срок. D = d - r
e (Execution Time) - время исполнения задачи при выполнении ею очередной работы. e = c - s
R (Response Time) - время отклика. R = c - r
Диаграмма ниже иллюстрирует эти параметры:
r s c d
* --------------- |
| | | |
| | | *
-+---+---+---+---+---+---+---+---+---+---+---+---+---+----> t (у.е.)
0 1 2 3 4 5 6 7 8 9 10 11 12 13
Приведенная на этой диаграмме работа задачи имеет следующие параметры:
r = 2
d = 11
s = 5
с = 9
D = 11 - 2 = 9
e = 9 - 5 = 4
R = 9 -2 = 7
Упомянутые параметры определяются следующим. Времена перехода задач в состояние готовности, по сути, определяются природой управляемого объекта. Крайние сроки определяет разработчик СРВ, исходя из свойств управляемого объекта. Времена исполнения задач определяются архитектурой процессора, его тактовой частотой и конкретной реализацией того или иного алгоритма. Для определения последней величины (а ее искать необходимо для разработки того или иного приложения) можно использовать 2 подхода.
Первый заключается в подсчете количества тактов процессора, необходимых на выполнение той или иной задачи. Такой подсчет чрезвычайно усложняется в случае, если процессор содержит механизмы типа конвейеров и всевозможных кэшей.
Второй подход более прост и состоит в том, что времена исполнения непосредственно измеряются. Однако, в случае процессоров с конвейерами и кэшами такие измерения не дают гарантии, что будет измерено именно МАКСИМАЛЬНОЕ время исполнения того или иного кода (надо внимательно прочитать и осознать почему). Наконец, системы, использующие механизмы подкачки страниц, также являются менее предсказуемыми и поэтому считается, что такого рода механизмы являются "врагами" систем реального времени. Недаром в различного рода стандартах, касающихся СРВ, предусмотрены средства блокировки страниц памяти.
Определение. Крайний срок называется ЖЕСТКИМ (HARD), если он ОБЯЗАН быть соблюден, при этом в системе должна существовать возможность проверки того, был ли соблюден крайний срок или нет. Несоблюдение такого крайнего срока ведет к катастрофическим последствиям (авария, гибель людей и т.п.)
Определение. Крайний срок называется МЯГКИМ (SOFT), если _иногда_ его допустимо не соблюдать. Несоблюдение такого крайнего срока не ведет к катастрофическим последствиям, а лишь к некоторому снижению производительности, ухудшению качества обслуживания, повышению стоимости результатов, бесполезной трате времени и т.п.
Для количественного выражения "иногда" используют или вероятностный подход ("допустимо несоблюдение крайнего срока в 5% случаях"), или подход, основанный на введении т.наз. "функции полезности". При этом, если полезность завершения работы после крайнего срока обращается в нуль, мягкий крайний срок называют ЧЕТКИМ.
Определение. Система реального времени называется ЖЕСТКОЙ, если все крайние сроки, характеризующие эту систему - жесткие.
Примерами таких систем могут служить системы управления ядерными реакторами на атомных электростанциях, системы автопилотирования на самолетах и т.п.
Определение. Система реального времени называется МЯГКОЙ, если хотя бы один из крайних сроков, характеризующих эту систему, является мягким.
В качестве примеров такого рода можно привести системы мультимедиа, системы связи (например, сотовой) и т.п. Отметим также, что иногда мягкие системы называют ГИБКИМИ.
Области применения СРВ:
Системы управления технологическими процессами (например, управление реакторами на атомнымых электростанциях, переработка различных материалов/сырья и т.п.)
Системы медицинского мониторинга и жизнеобеспечения
Военные системы (системы наведения, разведки и пр.)
Робототехника (например, конвейерная сборочная линия)
Подсистемы транспортных средств (антиблокировка тормозов, управление зажиганием, автопилоты на самолетах)
Системы сбора данных в научных исследованиях
Системы охранной сигнализации
Примеры
робот на конвейере
самолет (система автоматического пилотирования)
корабль (...)
очередь в магазине
мультимедиа-приложения, DSP
сеть, системы связи (например, сотовой)