Конференции ИВТ СО РАН


V Всероссийская конференция молодых ученых по математическому моделированию и информационным технологиям с участием иностранных ученых

1-3 ноября, г. Новосибирск, Россия

Тезисы докладов


Информационные технологии

Об одном подходе к ведению трассы исполнения программы с минимальными возмущениями

Могилёв А.В.

Институт Систем Информатики СО РАН (Новосибирск)

В связи с постоянным увеличением количества параллельных программ, со временем всё острее встаёт проблема их удобной отладки. Особую трудность при отладке параллельных программ может создавать их недетерминированность, намеренная либо возникающая в результате ошибки. Поскольку при повторных запусках программы может быть выбран иной путь исполнения, вся информация, собранная при предыдущих запусках, становится недостоверной. Тем самым, обычная методика циклической отладки становится неприменимой. Более того, из-за изменения временной картины исполнения, ошибка, проявляющаяся при обычном запуске программы, может не проявляться при запуске под отладчиком. Выход, предлагаемый техникой "воспроизведения исполнения" (execution replay), заключается в фиксировании и отладке только того пути исполнения, при котором проявляется ошибка - то есть сведении задачи к хорошо изученной задаче отладки детерминированных программ. Это достигается созданием двух инструментированных версий отлаживаемой программы: трассирующая версия во время исполнения собирает и записывает некоторую дополнительную информацию (трассу), которая в будущем используется воспроизводящей версией для многократного точного воспроизведения записанного исполнения.

Важным условием на алгоритм трассировки является минимальность его влияния на исполнения программы. В противном случае велика вероятность, что поведения оригинальной и трассировочной версий программы будут различаться, например, какую-либо ошибку не удастся проявить в трассировочной версии. В данной статье обсуждается только минимизация возмущений при ведении трассы; обсуждение алгоритмов трассировки исполнения остаётся за её пределами. Под "ведением трассы" автор понимает совокупность действий, выполняющихся при записи информации о произошедшем событии, таком как переключение потоков или вызов внешней функции. Эти действия могут включать в себя синхронизацию доступа к буферу трассы, периодический сброс буфера в файл и т.д.

В статье рассмотрено несколько подходов и детально описан один из них, реализованный в экспериментальной системе воспроизведения Java-программ, основанной на виртуальной машине Excelsior JET. В подходе используется синхронизация доступа к буферу с отменой транзакций и двухуровневая система сброса буфера. Основной вариант ("мягкая очистка") использует свободные кванты времени для сброса части буфера, что позволяет избежать возмущений. Однако, в редких случаях возможно, что мягкая очистка не успеет отработать до момента, когда весь буфер будет заполнен. В таких случаях запускается аварийная очистка, приостанавливающая все потоки вплоть до полного завершения очистки.

Примечание. Тезисы докладов публикуются в авторской редакции



Ваши комментарии
Обратная связь
[ICT SBRAS]
[Головная страница]
[Конференции]

© 1996-2000, Институт вычислительных технологий СО РАН, Новосибирск
© 1996-2000, Сибирское отделение Российской академии наук, Новосибирск