- •11. Анализ производительности проекта параллельной системы
- •11.1. Теория планирования в реальном времени
- •11.2. Развитие теории планирования в реальном времени
- •11.3. Анализ производительности с помощью анализа последовательности событий
- •11.4. Анализ производительности с помощью теории планирования в реальном времени и анализа последовательности событий
- •11.5. Пример анализа производительности с помощью анализа последовательности событий
- •11.6. Пример анализа производительности с применением теории планирования в реальном времени
- •11.7. Анализ производительности по теории планирования в реальном времени и анализа последовательности событий
- •11.8. Пересмотр проекта
- •11.9. Оценка и измерение параметров производительности
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 мс.