- •11. Анализ производительности проекта параллельной системы
- •11.1. Теория планирования в реальном времени
- •11.2. Развитие теории планирования в реальном времени
- •11.3. Анализ производительности с помощью анализа последовательности событий
- •11.4. Анализ производительности с помощью теории планирования в реальном времени и анализа последовательности событий
- •11.5. Пример анализа производительности с помощью анализа последовательности событий
- •11.6. Пример анализа производительности с применением теории планирования в реальном времени
- •11.7. Анализ производительности по теории планирования в реальном времени и анализа последовательности событий
- •11.8. Пересмотр проекта
- •11.9. Оценка и измерение параметров производительности
11.7. Анализ производительности по теории планирования в реальном времени и анализа последовательности событий
Рассмотрим случай, когда водитель инициирует внешнее событие, изменив положение ручки круиз-контроля или нажав на тормоз. Для этого придется проанализировать задачи, участвующие в обработке последовательности событий, а также периодические задачи. В первом решении мы заменим четыре задачи из последовательности событий на эквивалентную апериодическую задачу.
11.7.1. Эквивалентная апериодическая задача. Необходимо учесть влияние, которое оказывает дополнительная нагрузка, вызванная действиями водителя, на стационарную нагрузку, обусловленную периодическими задачами. Худший случай возникает, когда автомобиль уже движется в автоматическом режиме, иначе задачи Корректировка Скорости и Интерфейс Дросселя не работают, и нагрузка на процессор меньше.
Рассмотрим, что происходит, когда водитель переводит ручку круиз-контроля в новое положение. При анализе последовательности событий и на соответствующей диаграмме показано, что в обработке события участвуют задачи Интерфейс Ручки Круиз-Контроля, Круиз-Контроль, Корректировка Скорости и Интерфейс Дросселя. Время ЦП, необходимое для обработки, задано уравнением 1 (см. раздел 11.5). Хотя в цепочку событий вовлечены четыре задачи, они должны выполняться в строго определенной последовательности, так как каждая следующая активизируется сообщением от предыдущей. Поэтому в первом приближении можно считать, что перечисленные задачи эквивалентны одной апериодической задаче, на выполнение которой уходит время Ce. Ce – это сумма времен выполнения четырех отдельных задач плюс затраты на межзадачные коммуникации и контекстное переключение. Эквивалентная апериодическая задача называется задачей последовательности событий.
Из теории планирования в реальном времени следует, что апериодическую задачу можно рассматривать как периодическую с периодом, равным минимальному интервалу между событиями. Пусть период эквивалентной апериодической задачи равен Тe. Предположим, что Тe – это еще и максимальное время реакции на действия водителя. Например, если Тe составляет 250 мс, то система должна отреагировать на нажатие тормоза или отключение круиз-контроля в течение 250 мс. Для эквивалентной периодической задачи последовательности событий будем считать, что водитель способен инициировать не более четырех внешних событий в секунду, это худший и крайне маловероятный случай. Тем не менее, если удастся доказать, что система может справиться и с такой ситуацией, уверенность в ее работоспособности многократно возрастет.
Первоначально задаче последовательности событий назначается естественный частотно-монотонный приоритет. Поскольку у апериодичной задачи последовательности событий такой же период, что и у двух других периодических задач – Корректировка Скорости и Путь и Скорость, – то ей присваивается наивысший приоритет. Но у задач Интерфейс Вала, Интерфейс Дросселя и Автодатчики более короткие периоды, поэтому их частотно-монотонные приоритеты будут выше, чем у задачи последовательности событий. Параметры алгоритма планирования для данного случая, а также назначенные задачам приоритеты показаны в табл.11. 4 (случай 1).
После подстановки оценок времени ЦП из табл.11.2 в уравнение 1 (см. раздел 11.5) получаем, что время Ce выполнения эквивалентной задачи последовательности событий равно 35 мс. Учитывая, что ее период Te составляет 250 мс, коэффициент использования ЦП оказывается равным 0,14. Так как полный коэффициент использования ЦП периодическими задачами равен 0,48, то в сумме получаем коэффициент 0,62, что меньше предельного значения 0,69. Следовательно, задача последовательности событий удовлетворяет временным ограничениям; то же можно сказать обо всех периодических задачах.
Таблица 11.4
Планирование в реальном времени для системы круиз-контроля и мониторинга: параметры периодических задач и задачи последовательности событий
Задача |
Время ЦП Ci |
Пери-од Ti |
Коэффици-ент исполь-зования Ui |
Приори-тет (слу-чай 1) |
Приори-тет (слу-чай 2) |
Интерфейс вала |
2 |
10 |
0,20 |
1 |
1 |
Автодатчики |
6 |
100 |
0,06 |
3 |
3 |
Путь и Скорость |
11 |
250 |
0,04 |
5 |
5 |
Калибровка |
5 |
500 |
0,01 |
7 |
7 |
Корректировка Скорости |
15 |
250 |
0,06 |
6 |
6 |
Интерфейс Дросселя |
6 |
100 |
0,06 |
3 |
4 |
Интерфейс Кнопки Сброса |
4 |
500 |
0,01 |
8 |
8 |
Таймер Средних Показателей |
20 |
1000 |
0,02 |
10 |
10 |
Интерфейс Кнопки Сброса Обслуживания |
6 |
1000 |
0,01 |
9 |
9 |
Таймер Обслуживания |
15 |
2000 |
0,01 |
11 |
11 |
Задача Последо-вательности Событий |
35 |
250 |
0,14 |
4 |
2 |
Полный коэффициент использования Un=0,62
Назначение приоритетов:
Случай 1 – частотно-монотонные;
Случай 2 – не частотно-монотонные.
Отметим, что нажатие тормоза допустимо проанализировать так же, как и изменение положения ручки круиз-контроля. В обработке события от педали тормоза участвуют задачи Автодатчики, Круиз-Контроль, Корректировка Скорости и Интерфейс Дросселя, причем последние три задействованы и в обработке события от ручки круиз-контроля. Из табл.11.2 видно, что оценка времени выполнения задачи Автодатчики (5 мс) такая же, как для задачи Интерфейс Ручки Круиз-Контроля. Поэтому на обработку нажатия тормоза ЦП тратит столько же времени, сколько на обработку события от ручки круиз-контроля. Хотя период задачи Автодатчики равен 100 мс, мы предполагаем, что водитель не в состоянии генерировать события с частотой больше чем четыре раза в секунду, будь то нажатия на педаль тормоза или манипулирование ручкой круиз-контроля. Значит, частота запуска задачи Автодатчики вполне достаточна для того, чтобы не пропустить ни одного события.
Итак, можно считать, что случай нажатия педали тормоза аналогичен изменению положения ручки круиз-контроля и их допустимо рассматривать одинаково. Стало быть, и результаты анализа последовательности событий будут идентичными.
11.7.2. Назначение других приоритетов. В первом решении было сделано одно допущение и одно приближение. Сначала рассмотрим допущение о том, что всем задачам можно назначить частотно-монотонные приоритеты. В таком случае имеется вероятность, что задача последовательности событий пропустит прерывание от ручки круиз-контроля, если будет дожидаться завершения задач Интерфейс Вала, Интерфейс Дросселя и Автодатчики. С другой стороны, если назначить задаче последовательности событий наивысший приоритет, то задача Интерфейс Вала не успеет отработать, так как ее период равен 10 мс, а время выполнения задачи последовательности событий – 35 мс.
Чтобы избежать этого, мы присвоим задаче последовательности событий приоритет ниже, чем задаче Интерфейс Вала, но выше, чем у задач Интерфейс Дросселя и Автодатчики. Таким образом, приоритет задачи последовательности событий будет отличаться от частотно-монотонного; это показано в табл.11.4 (случай 2). Следовательно, нужно явно проверить, что каждая задача удовлетворяет своим временным ограничениям.
У двух задач с наивысшими приоритетами – Интерфейс Вала и задача последовательности событий – суммарный коэффициент использования ЦП равен 0,34, так что они без труда укладываются в срок. Но уже две следующие задачи – Интерфейс Дросселя и Автодатчики – могут быть задержаны задачей последовательности событий. Необходимо провести анализ худшего случая с целью убедиться, что они успеют завершиться вовремя, учитывая при этом, что период каждой равен 100 мс.
Рассмотрим самую большую нагрузку на процессор в течение интервала длиной 100 мс: десять раз активизируется задача Интерфейс Вала, по одному разу – четыре задачи, участвующие в обработке последовательности событий, и по одному разу – задачи Интерфейс Дросселя и Автодатчики. Задача Интерфейс Вала потребляет 10 × 2 = 20 мс. Четыре задачи, задействованные в обработке последовательности событий, требуют 35 мс. Для каждой из задач Интерфейс Дросселя и Автодатчики нужно еще по 6 мс. Всего ЦП затрачивает 67 мс, то есть меньше, чем период задач Интерфейс Дросселя и Автодатчики (100 мс). Таким образом, все задачи успевают завершиться в срок.
Отметим, что, хотя полный коэффициент использования ЦП составляет 62%, во время всплесков активности кратковременная нагрузка может быть гораздо больше. Так, на рассмотренном выше интервале протяженностью 100 мс полный коэффициент использования тремя стационарными задачами и одной задачей последовательности событий равен 0,67, а значит, при этом все еще будут выполняться низкоприоритетные задачи. Если в течение данного интервала активизируется еще и задача Путь и Скорость, то коэффициент использования поднимется до 0,78. Но алгоритм планирования в реальном времени гарантирует, что все задачи будут удовлетворять временным ограничениям при любых кратковременных всплесках активности.
11.7.3. Детальный анализ апериодических задач. Для более полного анализа задачи круиз-контроля нужно по отдельности рассмотреть все задачи, участвующие в обработке последовательности событий. Параметры каждой из четырех задач приведены в табл. 17.2 и 17.5, причем затраты на межзадачные коммуникации и контекстное переключение уже учтены во времени выполнения.
Таблица 11.5
Планирование в реальном времени для системы круиз-контроля и мониторинга: параметры периодических и апериодических задач
Задача
|
Время ЦП Сi
|
Период Тi
|
Коэффициент использования Ui
|
Приоритет
|
Интерфейс Вала
|
2
|
10
|
0,20
|
1
|
Автодатчики
|
6
|
100
|
0,06
|
3
|
Путь и Скорость
|
11
|
250
|
0,04
|
7
|
Калибровка
|
5
|
500
|
0,01
|
8
|
Корректировка Скорости*
|
16
|
250
|
0,06
|
6
|
Интерфейс Дросселя*
|
6
|
100
|
0,06
|
4
|
Интерфейс Кнопки Сброса
|
4
|
500
|
0,01
|
9
|
Таймер Средних Показателей
|
20
|
1000
|
0,02
|
11
|
Интерфейс Кнопки Сброса Обслуживания
|
6
|
1000
|
0,01
|
10
|
Таймер Обслуживания
|
15
|
2000
|
0,01
|
12
|
Интерфейс Ручки Круиз-Контроля*
|
6
|
250
|
0,02
|
2
|
Круиз-Контроль*
|
7
|
250
|
0,03
|
5
|
* Задачи, участвующие в обработке последовательности событий.
Кроме того, время ЦП для задачи Интерфейс Ручки Круиз-Контроля равно С1 + С2. Все задачи, принимающие участие в обработке события, считаются периодическими с периодом, равным минимальному времени между событиями (250 мс). Единственное исключение – задача Интерфейс Дросселя, которая, кроме того, еще и выполняется каждые 100 мс.
Чтобы гарантировать своевременную реакцию на событие, задачам, которые участвуют в его обработке, следует по возможности назначить максимальный приоритет. В частности, для обеспечения быстрой обработки внешнего прерывания первая задача в цепочке – Интерфейс Ручки Круиз-Контроля – получает приоритет, выше которого стоит лишь задача Интерфейс Вала. Поскольку этот приоритет выше, чему двух задач с более коротким периодом (Интерфейс Дросселя и Автодатчики), монотонность частот нарушена. Впрочем, остальным трем задачам в цепочке назначаются обычные частотно-монотонные приоритеты. Задача Интерфейс Дросселя, имеющая период 100 мс, получает четвертый по величине приоритет, а за ней оказывается задача Автодатчики с таким же периодом. Двум другим задачам – Круиз-Контроль и Корректировка Скорости – с одинаковым периодом по 250 мс назначаются следующие два приоритета.
Чтобы завершить анализ, необходимо применить обобщенную теорию планирования в реальном времени, которая требует явно проверить, что ни одна задача не выходит за свою верхнюю границу. Результаты показаны на рис.11.3.
Наивысший приоритет у задачи Интерфейс Вала с периодом 10 мс. Когда наступает время выполнения, она вытесняет все остальные задачи и работает в течение 2 мс, так что для нее временные ограничения заведомо удовлетворены. Задача Интерфейс Ручки Круиз-Контроля описывается вместе с остальными задачами в последовательности обработки события, поскольку важно, чтобы все четыре задачи успели завершиться за 250 мс.
Рассмотрим функционирование четырех задач на временном интервале Тe протяженностью 250 мс. Как и прежде, наша цель – удостовериться, что они закончат выполнение до истечения 250 мс. Применим обобщенную теорему о верхней границе коэффициента использования ЦП, принимая во внимание следующие четыре фактора:
– время выполнения задач, участвующих в обработке события. Полное время выполнения всех четырех задач Сe = 35 мс, а Тt = 250 мс. Коэффициент использования ЦП равен 0,14;
– время вытеснения более приоритетными задачами с периодами, меньшими 250 мс. Таких задач три. Задача Интерфейс Вала с периодом 10 мс может вытеснить любую задачу не более 25 раз и потребит 25 × 2 = 50 мс. Задачи Интерфейс Дросселя и Автодатчики с периодом 100 мс в состоянии вытеснить любую из остальных низкоприоритетных задач до трех раз и будут исполняться не дольше 3 (6 + 6) = 36 мс;
общее время вытеснения составляет 50 + 36 == 86;
суммарный коэффициент использования за счет вытеснения равен 0,2 + 0,06+0,06=0,32;
– вытеснение более приоритетными задачами с большими периодами. Таких задач нет;
– время блокировки задачами с более низким приоритетом. Таких задач нет.
Теперь мы можем определить общее затраченное время и полный коэффициент использования ЦП:
Общее затраченное время = общее время вытеснения + общее время выполнения = 86 + 35 - 121 <250.
Полный коэффициент использования = коэффициент использования за счет вытеснения + коэффициент использования за счет выполнения = 0,32 + 0,14 = 0,46 < 0,69.
Полный коэффициент использования 0,46 меньше предельного значения 0,69, которое дает теорема о верхней границе коэффициента использования, поэтому все четыре задачи удовлетворяют временным ограничениям.
Чтобы выяснить, верно ли сказанное в отношении двух задач с периодом 100 мс, необходимо рассмотреть вытеснение и время выполнения на интервале протяженностью 100 мс:
– время выполнения обеих задач. Они рассматриваются вместе, так как имеют одинаковый период. Полное время выполнения составляет 6 + 6 = 12 мс. Коэффициент использования ЦП равен 0,06 + 0,06 =0,12;
– время вытеснения более приоритетными задачами с периодами, меньшими 100 мс. Есть только одна такая задача – Интерфейс Вала, которая может вытеснить остальные задачи не более 10 раз на 100-миллисекундном интервале и потребит при этом 10 × 2 = 20 мс? Коэффициент использования за счет вытеснения равен 0,06;
– вытеснение более приоритетными задачами с большими периодами. Единственная такая задача Интерфейс Ручки Круиз-Контроля способна вытеснить любую из двух задач только один раз и занять 6 мс. Коэффициент использования равен 0,06;
– время блокировки задачами с более низким приоритетом. Таких задач нет.
Рис. 11.3. Система круиз-контроля и мониторинга
Сделаем вывод.
Суммарный коэффициент использования за счет вытеснения равен 0,2 + 0,06 = 0,26.
Полный коэффициент использования = коэффициент использования за счет вытеснения + коэффициент использования за счет выполнения = 0,26 + 0.12 = 0,38 < 0,69.
Следовательно, по теореме о верхней границе обе периодические задачи удовлетворяют временным ограничениям. Точно так же можно показать, что это справедливо и для низкоприоритетных задач. На временной диаграмме изображены две из них: Путь и Скорость и Калибровка.