Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект.doc
Скачиваний:
148
Добавлен:
01.05.2014
Размер:
606.21 Кб
Скачать

Автономные пим

Универсальные: GTF OS-360, УСТ (универсальное средство трассировки) ОС ЕС – это монитор для настройки ОС по внутренним событиям системы. Может настраиваться на любое событие.

Большинство современных мониторов специализированные и являются профилировщиками (анализатор кода выполнения программ). Выполняется трассировка путей выполнения программ, регистрация времени выполнения фрагментов, определение «узких мест» и контроль покрытия маршрутов выполнения программ.

Известные: MSDOS – Turbo Profiler, Windows – Intel VTune, AMD Code Analyst, VC++ profiler, Jprofiler – специализированные и серийные.

Уникальные профилировщики (для ограниченного числа заданных событий): Sampler

Общие особенности программных мониторов.

1) Механизм активации измерений:

- команды-ловушки (создается прерывание с помощью которого управление передается монитору)

- метод трассировки (вызов монитора после выполнения каждого оператора программы, большие накладные расходы)

- выборочное сэмплирование, прерывание по таймеру

2) Буферизация измеряемых данных

- размер буфера

- количество буферов (минимальное количество 2)

- переполнение буфера

3) Язык разработки монитора

4) Приоритет выполнения монитора (обычно низкий)

Проблемы, возникающие при построении мониторов

Проблемы «в малом» - связанные с профилированием небольших фрагментов программ

1) наличие конвейеризации

2) точность измерений

- системный таймер

- TSC (Time Stamp Counter)

Используя команду RDTSC можно прочитать значение (количество тактов процессора, прошедших с момента включения)

Но RDTSC – неупорядоченная команда, т.е. неизвестно, когда она будет выполнена

Обычно используют:

xor eax, eax

cpupid ;упорядоченная команда

rdtsc

mov clock, eax

... ;измеряемый фрагмент

xor eax, eax

cpupid

rdtsc

sub eax, clock

Проблемы «в большом»

1) Непостоянство времени выполнения при различных прогонах (из-за многозадачности ОС)

Путь решения – выполнять множество прогонов (10-15)

- выбрать минимальное время

- прогоны делятся на 3 группы. Отбрасывается 1/3 минимальных времен, 1/3 максимальных времен, оставшаяся 1/3 усредняется

2) Проблемы второго прогона (много необходимой информации для выполнения программы же подготовлено)

- если функция выполняется многократно, то последующие прогоны считаются более реальными

- если функция выполняется однократно, то используется только первый прогон

Общая схема использования пим

КТ – контрольная точка

ПП - подпрограмма

Блок подготовки – создание структур данных для размещения результатов измерений, расстановка контрольных точек (программных зондов)

Измерительный блок – совокупность измерительных подпрограмм, которые выполняют измерение набора параметров.

Способы расстановки контрольных точек.

По месту установки:

1) в исходном коде

2) в объектном модуле

3) в загрузочном модуле

4) в среде ОС

По способу установки:

1) вручную

2) автоматически

При расстановке вручную недостаток: зависимость от языка программирования

Расстановка для загрузочного модуля (не зависит от зыка программирования):

1) сбор измерения по прерываниям от таймера

2) полная интерпретация (ретрансляция) модуля с выполнением измерений при выполнении каждой команды или оператора

3) размещение контрольных точек в помеченных функциональных участках программы путем изъятия и сохранения фрагмента программы в стеке, размещением программы обработки контрольной точки, и последующего восстановления фрагмента программы