Обнаружение состояний гонки в Java-программах на основе синхронизационных контрактов

  • В. Ю. Трифанов
Keywords: многопоточность, параллельное программирование, автоматическое обнаружение ошибок, состояние гонки

Abstract

Состояния гонки (data races) – это несинхронизированные обращения к одному и тому же участку памяти разных потоков параллельной программы. Состояния гонки являются одними из самых трудно обнаруживаемых ошибок многопоточного программирования. Автоматический поиск гонок является предметом активных исследований в последние двадцать лет, однако, например, для Java-приложений на настоящий момент не существует полноценного программного средства (детектора гонок), применимого для промышленных приложений (сотни и тысячи классов). В статье предлагается идея динамического обнаружения гонок на основе синхронизационных контрактов. Последние помогают корректно исключать из области анализа произвольные части приложения, по той или иной причине не интересные с точки зрения поиска гонок (например код стандартных библиотек), делая процесс поиска гонок гибко управляемым. Это, в свою очередь, позволяет существенно понизить накладные расходы при поиске гонок без потери точности. В статье также представлена реализация этой идеи и апробация созданного инструмента. С. 16-29.
Published
2014-01-23
How to Cite
Трифанов, В. Ю. (2014). Обнаружение состояний гонки в Java-программах на основе синхронизационных контрактов. Computer Tools in Education, (4). Retrieved from http://cte.eltech.ru/ojs/index.php/kio/article/view/1313
Section
Articles