Динамическое обнаружение гонок в Java-программах


Динамическое обнаружение гонок в Java-программах

Трифанов Виталий Юрьевич, аспирант кафедры системного программирования математико-механического факультета СПбГУ. Старший разработчик компании Devexperts. Начало семинара - 09 апреля 2013 г.

Состояния гонки (data races) – это несинхронизированные обращения к одному и тому же участку памяти разных потоков параллельной программы. Состояния гонки являются одними из самых труднообнаружимых ошибок многопоточного программирования. Автоматический поиск гонок является предметом активных исследований в последние двадцать лет, однако, для Java-приложений на настоящий момент не существует полноценного программного средства (динамического детектора гонок), применимого для промышленных приложений (сотни и тысячи классов). Основная причина - высокие накладные расходы на анализ программ. В докладе будет представлена идея динамического обнаружения гонок на основе синхронизационных контрактов. Последние помогают корректно исключать из области анализа произвольные части приложения, по той или иной причине не интересные с точки зрения поиска гонок (например, код стандартных библиотек), делая процесс поиска гонок гибко управляемым. Это, в свою очередь, позволяет существенно понизить накладные расходы при поиске гонок без потери точности. Будет представлена программная реализация данной идеи - динамический детектор гонок jDRD - и результаты апробации на различных промышленных проектах.

С презентацией доклада можно ознакомиться здесь.

Семинар группы

Технологии программирования

Перейти к списку семинаров ИСП РАН