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

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

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

Следует рассмотреть внешнее событие, определить, какая задача ввода/выво­да активизируется таким событием и какая ожидается цепочка внутренних собы­тий. Для этого необходимо знать, какие задачи активизируются и какие задачи ввода/вывода генерируют отклик системы на внешнее событие. Далее нужно оце­нить время ЦП, потребляемое каждой задачей, и накладные расходы, состоящие из затрат на контекстное переключение, обработку прерывания и межзадачные коммуникации и синхронизацию. Надо проанализировать также другие задачи, выполняемые в тот же период времени. Суммарное время ЦП, потребляемое все­ми задачами, которые участвуют в цепочке событий, и всеми дополнительными задачами, которые исполнялись в то же время, плюс накладные расходы – все вместе не должно превысить заданное время реакции системы. Если вы не знаете точно времени ЦП, потребляемого каждой задачей, принимайте оценку для худ­шего случая.

Для анализа полного коэффициента использования ЦП необходимо рассчитать время, потребляемое каждой задачей на данном интервале. Если существует не­сколько путей выполнения задачи, то нужно получить оценку времени для каждого из них. Затем следует оценить частоту активизации задач. Для периодических задач это легко. Для асинхронных задач удобно рассмотреть среднюю и макси­мальную частоту активизации. Умножьте время ЦП для каждой задачи на ее час­тоту активизации, просуммируйте результаты и вычислите коэффициент исполь­зования ЦП.

Пример применения анализа последовательности событий приведен в разде­ле 17.5.

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

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

Для начала назначьте всем задачам в цепочке одинаковые приоритеты. С точки зрения теории планирования в реальном времени вместо них можно рассмотреть одну эквивалентную задачу. Она потребляет время, которое равно сумме времен, потребляемых всеми задачами в группе, плюс затраты на контекстное переключе­ние, межзадачные коммуникации и синхронизацию. В качестве периода эквива­лентной задачи устанавливается время в худшем случае между последовательны­ми приходами внешнего события, активизирующего цепочку.

Чтобы определить, удовлетворяет ли эквивалентная задача временным огра­ничениям, нужно применить теоремы из теории планирования в реальном време­ни – в частности, рассмотреть вытеснение высокоприоритетными задачами, блоки­ровку низкоприоритетными задачами и время выполнения эквивалентной задачи. Пример совместного использования анализа последовательности событий и пла­нирования в реальном времени на основе выделения эквивалентных задач приве­ден в следующем разделе.

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