Тактики реализации производительности
Еще в главе 4 мы сформулировали назначение тактик реализации производительности — оно заключается в реагировании на поступающее в систему событие в течение определенного времени. Событие может быть единичным, а может быть частью потока, но оно в любом случае инициирует запрос на проведение вычислений. Примеры событий — поступление сообщения, истечение периода времени, обнаружение значимого изменения состояния в окружении системы и т. д. Система обрабатывает эти события и генерирует отклик (реакцию). Тактики производительности позволяют контролировать период времени, отводимый на реагирование (рис. 5.6). Задержкой называется временной промежуток между поступлением события и появлением реакции. После поступления события система приступает к его обработке; по тем или иным причинам обработка может быть заблокирована. Отсюда делаем вывод о двух основных слагаемых времени отклика — это потребление ресурсов и продолжительность блокирования. 1. Потребление ресурсов. Ресурсы — это центральный процессор, хранилища данных, пропускная способность сетевых соединений и память; кроме того, в категорию ресурсов попадают некоторые сущности, задаваемые конкретной проектируемой системой. К примеру, речь может идти об управлении буферами и обеспечении последовательного доступа к критическим секциям. Каждому из перечисленных типов событий соответствует собственный цикл обработки. К примеру, сообщение генерируется одним компонентом, а затем через сетевое соединение поступает другому компоненту. Затем оно размещается в буфере, каким-то образом преобразуется (согласно терминологии, принятой рабочей группой OMG, это преобразование называется маршалингом), обрабатывается по определенному алгоритму, опять преобразуется в выходную форму, помещается в выходной буфер и, наконец, отправляется очередному компоненту, системе или пользователю. Общая задержка обработки события складывается из задержек всех этапов. 2. Продолжительность блокирования. В ходе проведения вычислений доступ к ресурсу может быть заблокирован; поводами к блокированию могут быть состязание за ресурс, его неготовность или зависимость данного вычисления от результатов других вычислений, которые еще не завершены. <> Состязание за ресурсы. На рис. 5.6 приводится схема поступающих в систему событий. Поступать они могут одним или несколькими потоками. Если ряд потоков или несколько событий в составе одного потока соперничают за право обращения к одному и тому же ресурсу, происходит задержка. Как правило, чем серьезнее состязание за ресурс, тем больше вероятность возникновения задержки. С другой стороны, это зависит от арбитража и способа обработки механизмом арбитража отдельных запросов. <> Готовность ресурсов. Если состязания не наблюдается, но требуемый ресурс недоступен, вычисление останавливается. Причинами неготовности ресурса могут быть, к примеру, его неоперативное состояние или сбой в компоненте. В любом случае, одна из задач архитектора заключается в том, чтобы выявить ситуации недоступности ресурсов, которые потенциально способны существенно увеличить общую задержку. О Зависимость от результатов других вычислений. Задержка вычисления иногда обусловливается необходимостью синхронизации с результатами других вычислений или ожиданием результатов инициированного вычисления. К примеру, если при получении информации из двух разных источников они считываются последовательно, задержка будет больше, чем если бы они считывались параллельно. Принимая во внимание все вышеприведенные обстоятельства, мы переходим к рассмотрению трех новых категорий тактик: потреблению, управлению и арбитражу ресурсов.
|