Инженерный журнал: наука и инновацииЭЛЕКТРОННОЕ НАУЧНО-ТЕХНИЧЕСКОЕ ИЗДАНИЕ
свидетельство о регистрации СМИ Эл № ФС77-53688 от 17 апреля 2013 г. ISSN 2308-6033. DOI 10.18698/2308-6033
  • Русский
  • Английский
Статья

Использование системы LLVM при динамическом поиске состояний гонок в программах

Опубликовано: 02.04.2013

Авторы: Ковега Д.Н., Крищенко В.А.

Опубликовано в выпуске: #2(14)/2013

DOI: 10.18698/2308-6033-2013-2-549

Раздел: Информационные технологии

В многопоточных программах может возникать состояние гонок ввиду отсутствия синхронизации при доступе к памяти. Для сбора информации о событиях динамическими методами выявления таких гонок требуется либо виртуальная машина, либо инструментирование исполняемого кода. В работе предложен метод динамического поиска гонок, использующий отношение предшествования и ограничение истории обращений. Метод реализован для анализа программ на языке С, для инструментирования исходного кода на этапе трансляции используется система LLVM. Как показывают проведенные эксперименты, применение предложенного метода позволяет сохранить накладные расходы на поиск гонок на приемлемом уровне.


Литература
[1] Nethercote N., Seward J. Valgrind: A framework for heavy-weight dynamic binary instrumentation // Proc. of the 2007 Programming Language Design and Implementation Conf. 2007. Vol. 26. No 6. P. 89–100.
[2] Marino D., Musuvathi M., Narayanasamy S. LiteRace: effective sampling for lightweight data-race detection // PLDI. 2009.
[3] LLVM Programmer’s Manual. URL: http://llvm.org/docs/ProgrammersManual.html
[4] A theory of data race detection / U. Banerjee, B. Bliss, Z. Ma, P. Petersen // Proc. of the 2006 Workshop on Parallel and Distributed Systems: Testing and Debugging. PADTAD’06. N. Y.: ACM, 2006. P. 69–78.
[5] Lamport L. Time, Clocks and the Ordering of Events in a Distributed System // Communications of the ACM. 1978. Vol. 21. No 7. P. 558–565.
[6] Serebryany K., Iskhodzhanov T. ThreadSanitizer: Data race detection in practice // Proc. of the Workshop on Binary Instrumentation and Applications. WBIA’09. N. Y.: ACM, 2009. P. 62–71.