ВУЗ: Пермский национальный исследовательский политехнический университет
Категория: Лекция
Дисциплина: Системы реального времени
Добавлен: 15.11.2018
Просмотров: 6694
Скачиваний: 11
21
поступлении спорадической задачи оценивается приоритет текущей
задачи.
Спорадическая
задача
устанавливается
в
очередь
периодических задач, если ее приоритет меньше, чем у периодических
задач.
Q1
34
31
32
33
U
M1
=6
=4
=3
=1
Q1
34
исп
3c
з
З1
32
33
Q1
34
выполняется
Зсз исполняется
31
32
Зсз
31
Рис.12.
Сама задача времени исполнения должна иметь наивысший
приоритет. Данный сервер включает лишь одну задачу – изменение
очереди задач.
Каждый
алгоритм
можно
оценить
с
точки
зрения
производительности. Для оценки производительности используются 3
параметра:
1.
Нагрузка системы на отказ (в обслуживании).
Breakdown Utilization (BU).
2.
Нормализованное среднее время ответа (NMRT).
3.
Гарантируемая скорость обработки задач (GR).
Нагрузка системы на отказ (в обслуживании) (BU) является
степенью использования ресурсов, при которой система может
гарантировать, что все задачи будут выполнены в заданные сроки. Чем
больше значение BU, тем больше время процессора, в котором
выполняются задачи.
Нормализованное среднее время ответа (NMRT) - это отношение
между интервалами времени от готовности задачи к выполнению до ее
22
окончания к фактическому времени процессора. Используется для
выполнения задач.
обр
нвз
овз
t
t
t
Чем больше NMRT, тем больше время простоя задач.
Гарантируемая скорость обработки задач (GR) является оценкой
производительности системы для задач. Вычисляется как отношение
определенного
числа
задач,
выполнение
которых
можно
гарантировать, к общему числу задач, ожидающих выполнения.
Если число больше 1, то система расписабельная, иначе –
нерасписабельная. Чем больше это число, тем больше запас времени
для выполнения задач.
Планировщик заданий
Планировщик заданий – это средство, которое предназначено
для исполнения задач на вычислительном узле.
Планировщики бывают разных видов:
1.
Глобальный
(общий)
планировщик
–
во-первых,
распределяет задачи между несколькими вычислительными узлами в
распределённой вычислительной системе. Обычно реализуется на
узле типа server, либо на одном из узлов системы при
децентрализованном управлении. Во-вторых, создаёт алгоритмы
формирования образа узлов.
2.
Местный планировщик – распределяет задачи на одном
вычислительном узле за заданный цикл функционирования. Работа
планировщиков на различных узлах является независимой.
Местный планировщик для глобального является обыкновенной
задачей с повышенным приоритетом.
Планировщик заданий определяет:
23
1. Последовательность выполнения задач.
Каждый цикл функционирования узла планировщик может
определять новую последовательность задач.
2. Распределение ресурсов между задачами.
Служит для борьбы с гонками.
Гонки – это ситуация по захвату доступа к ресурсу задачей с
маленьким приоритетом.
3. Распределение времени между задачами.
Выделение
заданного
количества
тиков
для
задачи,
исполняющейся на узле.
Время – наиболее актуальный параметр.
Тик – минимальная измеряемая единица времени.
Количество тиков зависит от разных параметров:
1.
частота процессора;
2.
время одного цикла.
Алгоритм функционирования планировщика
Планировщик является частью операционной системы.
Из всех задач строится таблица запуска. Определяются списки
задач по их виду (см. типы задач). В зависимости от типа задачи в
списке задач устанавливаются параметры групп запуска.
Для периодических и фоновых задач должны быть установлены
следующие параметры:
-
стартовая метка запуска данной группы задач;
-
период запуска данной группы задач;
-
крайний критический срок исполнения.
Имя группы
Стартовая
метка
Крайний критич.
срок исполнения
Период
ptl0
ptl1
0
5
5
5
1
1
24
ptl2
10
5
1
ptl
0 <список задач>
Для фоновых задач эта таблица расширится относительно
стартовой метки, то есть расширится диапазон запуска. Также
расширяется крайний критический срок исполнения (min и max).
Имя
группы
Старт.
метка min
Старт.
метка max
Край.
крит. срок
исп. min
Край. крит.
срок исп.
max
Период
Для апериодических и спорадических задач также создаются
таблицы, но они включают одну строку, если приоритет данного типа
задач не учитывается.
Апериодические задачи: apt <список задач>
метка не описывается
Спорадические задачи: spt <список задач> запуск задач
Если задачи необходимо делить по приоритетам, то в таблице
апериодических и спорадических задач необходимо указывать
различные метки для различных приоритетов.
Задачи-аппендиксы описываются в виде таблицы, включающей 1
параметр – метку запуска.
Имя группы Метка запуска
app0
0
app1
5
app
1 <список задач>
Анализ таблиц
На основании этих таблиц строится список задач на каждом
цикле исполнения.
25
M0
M1
M2
M3
spt
app0
ptl0
Рис.13.
Для аппендиксов, периодических и фоновых задач № метки
должен совпадать с тем, который поставлен в таблице для построения
списка.
Список задач может изменяться или не изменяться. Изменение
зависит от типового алгоритма планирования.
Исполнение планировщика (запуск):
Завершающая стадия.
1. Создаётся бесконечный цикл – это планировщик заданий.
test_tabl
// если планирование статическое
for
(;;) // бесконечный цикл
{
2. Если планирование динамическое, то анализ таблицы в
начале запуска test_tabl
3. После анализа таблицы построили списки задач.
// списки задач (4 метки)
4 период. + 4 апериод. +4 спорадич. + 1 фонов. + 1 аппенд.
<1…<14 (14 списков)
4. Следующей задачей будет вызов этих функций по данному
списку.