Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции - Часть 11.doc
Скачиваний:
59
Добавлен:
02.05.2014
Размер:
2.12 Mб
Скачать

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.

Следовательно, по теореме о верхней границе обе периодические задачи удов­летворяют временным ограничениям. Точно так же можно показать, что это спра­ведливо и для низкоприоритетных задач. На временной диаграмме изображены две из них: Путь и Скорость и Калибровка.