
- •11. Анализ производительности проекта параллельной системы
- •11.1. Теория планирования в реальном времени
- •11.2. Развитие теории планирования в реальном времени
- •11.3. Анализ производительности с помощью анализа последовательности событий
- •11.4. Анализ производительности с помощью теории планирования в реальном времени и анализа последовательности событий
- •11.5. Пример анализа производительности с помощью анализа последовательности событий
- •11.6. Пример анализа производительности с применением теории планирования в реальном времени
- •11.7. Анализ производительности по теории планирования в реальном времени и анализа последовательности событий
- •11.8. Пересмотр проекта
- •11.9. Оценка и измерение параметров производительности
Какую работу нужно написать?
11.3. Анализ производительности с помощью анализа последовательности событий
На этапе определения требований задается время реакции системы на внешние события. После разбиения на задачи можно предпринять первую попытку выделения временных бюджетов параллельным задачам. Для выявления задач, которые необходимо выполнить при обслуживании данного внешнего события, используется анализ последовательности событий. Чтобы показать последовательность событий и задач, активизируемых приходом внешнего события, применяется диаграмма последовательности событий, основанная на диаграмме параллельной кооперации.
Следует рассмотреть внешнее событие, определить, какая задача ввода/вывода активизируется таким событием и какая ожидается цепочка внутренних событий. Для этого необходимо знать, какие задачи активизируются и какие задачи ввода/вывода генерируют отклик системы на внешнее событие. Далее нужно оценить время ЦП, потребляемое каждой задачей, и накладные расходы, состоящие из затрат на контекстное переключение, обработку прерывания и межзадачные коммуникации и синхронизацию. Надо проанализировать также другие задачи, выполняемые в тот же период времени. Суммарное время ЦП, потребляемое всеми задачами, которые участвуют в цепочке событий, и всеми дополнительными задачами, которые исполнялись в то же время, плюс накладные расходы – все вместе не должно превысить заданное время реакции системы. Если вы не знаете точно времени ЦП, потребляемого каждой задачей, принимайте оценку для худшего случая.
Для анализа полного коэффициента использования ЦП необходимо рассчитать время, потребляемое каждой задачей на данном интервале. Если существует несколько путей выполнения задачи, то нужно получить оценку времени для каждого из них. Затем следует оценить частоту активизации задач. Для периодических задач это легко. Для асинхронных задач удобно рассмотреть среднюю и максимальную частоту активизации. Умножьте время ЦП для каждой задачи на ее частоту активизации, просуммируйте результаты и вычислите коэффициент использования ЦП.
Пример применения анализа последовательности событий приведен в разделе 17.5.
11.4. Анализ производительности с помощью теории планирования в реальном времени и анализа последовательности событий
Ниже мы расскажем, как теория планирования в реальном времени сочетается с анализом последовательности событий. Вместо того чтобы рассматривать задачи по отдельности, необходимо изучить все задачи, участвующие в некоторой последовательности событий. Сначала исполняется задача, активизируемая внешним событием, которая инициирует цепочку внутренних событий, а они, в свою очередь, активизируют другие задачи. Необходимо убедиться, что все задачи, вошедшие в цепочку, способны завершить исполнение вовремя.
Для начала назначьте всем задачам в цепочке одинаковые приоритеты. С точки зрения теории планирования в реальном времени вместо них можно рассмотреть одну эквивалентную задачу. Она потребляет время, которое равно сумме времен, потребляемых всеми задачами в группе, плюс затраты на контекстное переключение, межзадачные коммуникации и синхронизацию. В качестве периода эквивалентной задачи устанавливается время в худшем случае между последовательными приходами внешнего события, активизирующего цепочку.
Чтобы определить, удовлетворяет ли эквивалентная задача временным ограничениям, нужно применить теоремы из теории планирования в реальном времени – в частности, рассмотреть вытеснение высокоприоритетными задачами, блокировку низкоприоритетными задачами и время выполнения эквивалентной задачи. Пример совместного использования анализа последовательности событий и планирования в реальном времени на основе выделения эквивалентных задач приведен в следующем разделе.
Иногда задачи, участвующие в обработке последовательности событий, нельзя заменить одной эквивалентной задачей. Например, это невозможно, если одна из задач встречается в нескольких последовательных задачах или если исполнение эквивалентной задачи с тем же приоритетом будет препятствовать своевременному завершению других задач. В таких случаях задачи следует анализировать по отдельности и назначать им различные приоритеты. При решении вопроса о том, смогут ли задачи в цепочке событий удовлетворить временным ограничениям, необходимо учитывать вытеснение и блокировку для каждой задачи в отдельности, но не менее важно рассчитать, завершатся ли в срок все задачи в последовательности.