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

11.5. Пример анализа производительности с помощью анализа последовательности событий

В качестве примера рассмотрим подсистему Круиз-Контроль из системы круиз-контроля и мониторинга. Для анализа будем использовать изображенную на рис.11.2 диаграмму последовательности событий, которая основана на диа­грамме архитектуры задач. Предположим, что все задачи из подсистемы Монито­ринг, а также задача Калибровка из подсистемы Круиз-Контроль имеют низ­кие приоритеты, так что на первом этапе их можно не принимать в расчет.

Вначале проанализируем случай, когда водитель переводит ручку круиз-кон­троля в положение «Разгон», инициируя тем самым автоматическое ускорение машины. В требованиях к системе записано, что система должна отреагировать на это действие в течение 250 мс. Последовательность внутренних событий, вы­званных действием водителя, показана на диаграмме параллельной кооперации (рис.11.2).

Предположим, что подсистема Круиз-Контроль находится в состоянии Начальное. Ниже приведена цепочка событий, следующих за переводом ручки в по­ложение «Разгон». С. обозначает время, необходимое для обработки i-ого события.

С1: От внешнего устройства Ручка Круиз-Контроля поступает прерыва­ние Круиз-Контроля.

С2: Интерфейс Ручки Круиз-Контроля получает входную информацию «Разгон» от Ручки Круиз-Контроля.

С3: Интерфейс Ручки Круиз-Контроля отправляет сообщение, содержащее запрос объекту Круиз-Контроль.

С4: Объект Круиз-Контроль принимает сообщение, исполняет свою диа­грамму состояний и изменяет состояние с Начальное на Разгон.

С5: Объект Круиз-Контроль посылает команду на увеличение скорости объекту Корректировка Скорости.

С6: Объект Корректировка Скорости выполняет команду и вычисляет зна­чение дросселя.

С7: Объект Корректировка Скорости передает сообщение, содержащее зна­чение дросселя, задаче Интерфейс Дросселя.

С8: Интерфейс Дросселя вычисляет новое положение дроссельной заслонки.

С9: Интерфейс Дросселя посылает информацию о положении дроссельной заслонки физическому дросселю. (С9 – это операция вывода, на которую ЦП время не тратит.)

Рис.11.2. Последовательность событий в системе круиз-контроля после действия водителя

На диаграмме последовательности событий (см. рис.11.2) показано, что для обработки внешнего события «Разгон» требуется четыре задачи (Интерфейс Ручки Круиз-Контроля, Круиз-Контроль, Корректировка Скорости и Ин­терфейс Дросселя). Поэтому имеется как минимум четыре контекстных пере­ключения, на которые тратится время 4Сx , где Сx – время, необходимое для одно­го переключения.

Полное время, которое ЦП расходует на эти четыре задачи (Сe ), равно сумме времен выполнения каждой задачи и времени, необходимого для межзадачных коммуникаций, плюс затраты на контекстное переключение:

Сe = С1 + C2 + С3 + С4 + С5 + С6 + С7 + С8 + 4Сx .

Предположим, что затраты на межзадачные коммуникации Сm постоянны. Тогда С3, С5 и С7 равны Сm, так что полное время выполнения составит

Сe = С1 + C2 + С4 + С6 + С8 + 3Сm + 4Сx . (уравнение 1)

Чтобы определить время реакции системы, необходимо также принять во вни­мание другие задачи, которые способны выполняться, пока система обрабатывает внешнее событие. Посмотрим, какие еще задачи представлены на рис.11.2. Пред­положим, что задача Автодатчики (С10) активизируется каждые 100 мс, поэтому в течение 250 мс она может отработать три раза. Задача Интерфейс Вала (С11) выполняется при каждом обороте вала и потому в течение того же временного промежутка может быть активизирована до 25 раз (то есть каждые 10 мс) в пред­положении, что максимальная скорость вращения вала составляет 6000 об/мин. Наконец, задача Путь и Скорость (С12) активизируется четыре раза в секунду и, следовательно, будет запущена только единожды. Каждый раз, как управление получает новая задача, происходит два контекстных переключения, если предпо­ложить, что текущая задача вытесняется и продолжает работу после завершения прервавшей ее задачи. Таким образом, эти три задачи могут привести к 58 допол­нительным переключениям.

Итак, общее время Сa, затраченное системой на три дополнительные задачи, с учетом накладных расходов составит

Сa = 3(С10 + 2Сx) + 25(С11 + 2Сx) + (С12 + 4Сx) (уравнение 2)

Полное время ЦП не должно превышать предельное время реакции, указан­ное в требованиях к системе. Это полное время равно

Сt = Сe + Сa (уравнение 3)

Прежде чем решать приведенные уравнения, нужно оценить каждый из вре­менных параметров (табл.11.2). Так как ЦП рассчитан на работу в реальном вре­мени, допустимо предположить, что время контекстного переключения составля­ет 0,5 мс.

Таблица 11.2.

Затраты процессорного времени в подсистеме Круиз-Контроль

Задача

С, (мс)

Периодические задачи

(Ci + 2Cx) мс

Задачи, участвующие в обработке последо-вательности событий

(Ci + Cx + Сm) мс

1

2

3

4

Прерывание Круиз-Контроля (С1)

1

Интерфейс Ручки Круиз-Контроля (С2)

4

Всего на Ввод от Круиз-Контроля (С1 + С2)

5

6

Круиз-Контроль(С4)

6

7

Корректировка Скорости (C6)

14

15

16

Интерфейс Дросселя (С8)

5

6

6

Затраты на Межзадачные Коммуникации (Сm)

1

Продолжение табл. 11.2

1

2

3

4

Затраты на Контекстное Переключение (Сx)

0,5

Автодатчики (С10)

5

6

Интерфейс Вала (С11)

1

2

Путь и Скорость (С12)

10

11

Полное время, потраченное ЦП на все задачи, которые участвуют в обработке последователь­ности событий, равно 35 мс.

Подстановка данных из табл.11.2 в уравнение 1 дает оценку Сe = 35 мс. Под­становка в уравнение 2 дает Сa = 79 мс. Следовательно, из уравнения 3 получаем оценку полного времени ЦП: Сt == 114 мс. Это намного меньше, чем 250 мс.

Можно поэкспериментировать с другими значениями параметров, чтобы проверить, насколько оценка времени реакции чувствительна к ошибкам. На­пример, если окажется, что на контекстное переключение уходит 1 мс, а не 0,5 мс, то Сe возрастет до 37 мс, а Сa – до 108 мс. В результате полное время ЦП составит 145 мс, что на 31 мс больше первоначальной оценки, но все же далеко до пре­дельных 250 мс.