RUS  ENG
Полная версия
ЖУРНАЛЫ // Труды института системного программирования РАН // Архив

Труды ИСП РАН, 2023, том 35, выпуск 6, страницы 135–156 (Mi tisp837)

Инструмент для поиска гонок по данным RaceHunter

Е. А. Герлиц

Институт системного программирования им. В.П. Иванникова РАН

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

Ключевые слова: гонка по данным, динамический анализ, синхронизация потоков, состояние гонки, параллельная программа, многопоточная программа

DOI: 10.15514/ISPRAS-2023-35(6)-8



© МИАН, 2024