- •11. Анализ производительности проекта параллельной системы
- •11.1. Теория планирования в реальном времени
- •11.2. Развитие теории планирования в реальном времени
- •11.3. Анализ производительности с помощью анализа последовательности событий
- •11.4. Анализ производительности с помощью теории планирования в реальном времени и анализа последовательности событий
- •11.5. Пример анализа производительности с помощью анализа последовательности событий
- •11.6. Пример анализа производительности с применением теории планирования в реальном времени
- •11.7. Анализ производительности по теории планирования в реальном времени и анализа последовательности событий
- •11.8. Пересмотр проекта
- •11.9. Оценка и измерение параметров производительности
11.8. Пересмотр проекта
Если первоначальный проект не отвечает требованиям, предъявляемым к эффективности, то его необходимо пересмотреть. Для этого применяются критерии разбиения на задачи и критерии инверсии задач, в частности более слабые формы группировки задач (темпоральная инверсия) и другие виды инверсии: инверсия нескольких экземпляров задачи и инверсия последовательных задач.
Если бы в примере системы круиз-контроля были проблемы с производительностью, то прежде всего стоило бы подумать об инверсии последовательных задач. Рассмотрим ситуацию, когда задача Круиз-Контроль посылает команду задаче Корректировка Скорости, которая, в свою очередь, отправляет сообщения задаче Интерфейс Дросселя. Эти три задачи можно объединить, применив инверсию последовательных задач, то есть заменив их одной задачей Круиз-Контроль с пассивными объектами Корректировка Скорости и Интерфейс Дросселя. Таким образом были бы устранены накладные расходы на межзадачные коммуникации и контекстное переключение. Пусть время ЦП, потребляемое инвертированной задачей, равно Сv . Обратившись к табл. 17.2, получаем:
Сv = С4 + C6 + C8 (уравнение 4)
Время, необходимое для выполнения двух задач в новой последовательности обработки события Сee равно
Cee = C1 + C2 + Cv + Cm + 2Сx (уравнение 5)
Интересно сравнить уравнение 5 (в последовательности только две задачи) с уравнением 1 из раздела 17.5 (в последовательности четыре задачи); накладные расходы на обмен сообщениями уменьшились с 3Сm до Сm , а на контекстное переключение – с 4Сx до 2Сx . Воспользовавшись оценками времени из табл. 17.2, увидим, что полное время выполнения сократилось с 35 до 32 мс. Если бы накладные расходы были выше, экономия оказалась бы более существенной. Например, при Сm = 3 мс и Сx = 2 мс общее время выполнения апериодических задач уменьшится с 47 до 37 мс.
11.9. Оценка и измерение параметров производительности
Прежде чем приступать к анализу производительности, необходимо оценить или измерить различные временные параметры. Это независимые переменные. Оценки для зависимых переменных дает теория планирования в реальном времени.
Основное предположение, на котором базируется теория планирования в реальном времени, состоит в том, что все задачи находятся в оперативной памяти, поэтому время на подкачку страниц не тратится. Такого рода накладные расходы могли бы внести дополнительную неопределенность и задержки, нетерпимые в системах с жесткими временными ограничениями.
Ниже приведены параметры, которые нужно оценить для каждой задачи:
– период задачи Тi, то есть частота ее выполнения. Для периодических задач период фиксирован. Для апериодических задач берется худший случай: минимальное время между последовательными внешними событиями, которые ее активизируют. Затем полученная величина экстраполируется на внутренние задачи, которые принимают участие в обработке данного события;
– время выполнения Сi, то есть потребляемое задачей время процессора. На этапе проектирования можно лишь приблизительно охарактеризовать эту величину. Оцените число строк исходного текста задачи и число команд в откомпилированном коде. Воспользуйтесь контрольными примерами, написанными на выбранном языке для работы на выбранном оборудовании под управлением выбранной операционной системы. Сравните результаты контрольного примера с его размером, чтобы получить оценку времени выполнения откомпилированного кода.
Следующие три показателя необходимо определить, выполняя измерения для контрольного примера, работающего в тех же условиях:
– затраты на контекстное переключение. Время, которое операционная система расходует на передачу ЦП от одной задачи к другой (см. главу 4);
– затраты на обработку прерываний. Время, предназначенное для обработки прерываний;
– затраты на межзадачные коммуникации и синхронизацию. Время, израсходованное на посылку сообщения или сигнализацию событию. Зависит от тех примитивов, которые применяет задача.
Эти параметры включаются в расчет времени ЦП, потребляемого задачей, как было показано в примерах выше.