Труды института системного программирования РАН
RUS  ENG    ЖУРНАЛЫ   ПЕРСОНАЛИИ   ОРГАНИЗАЦИИ   КОНФЕРЕНЦИИ   СЕМИНАРЫ   ВИДЕОТЕКА   ПАКЕТ AMSBIB  
Общая информация
Последний выпуск
Архив

Поиск публикаций
Поиск ссылок

RSS
Последний выпуск
Текущие выпуски
Архивные выпуски
Что такое RSS



Труды ИСП РАН:
Год:
Том:
Выпуск:
Страница:
Найти






Персональный вход:
Логин:
Пароль:
Запомнить пароль
Войти
Забыли пароль?
Регистрация


Труды института системного программирования РАН, 2015, том 27, выпуск 2, страницы 39–52
DOI: https://doi.org/10.15514/ISPRAS-2015-27(2)-3
(Mi tisp121)
 

Поиск состояний гонки в программах на языке Java при помощи динамического анализа

М. К. Ермаков, С. П. Вартанов

Факультет вычислительной математики и кибернетики, Московский государственный университет им. М.В. Ломоносова
Список литературы:
Аннотация: Язык программирования Java обладает встроенными средствами поддержки многопоточного выполнения программ. Из-за ошибок при создании подобных программ в процессе выполнения могут возникать ошибки синхронизации, одной из которых является возникновение состояния гонки между потоками, которые осуществляют доступ к разделяемому ресурсу (как минимум один поток модифицирует ресурс) и порядок работы потоков с ресурсом не фиксирован. В статье рассматривается подход к поиску состояний гонки при помощи динамического анализа. Преимущества динамического анализа по сравнению со статическим заключаются в отсутствии ложных срабатываний при определённых ограничениях, накладываемых на анализируемую программу. Для проведения динамического анализа предлагается использовать статическую инструментацию байт-кода программы, которая позволяет в ходе выполнения программы извлекать информацию о выполнении инструкций и методов, осуществляющих работу по синхронизации потоков. Построенная трасса представляет собой модель конкретного выполнения программы. На её основе с помощью отношений предшествования и механизма отслеживания блокировок определяется, возможна ли ситуация, при которой возникает состояние гонки. Для инструментации с целью сбора трассы используется инструмент динамического анализа Coffee Machine. Статическая инструментация, используемая в инструменте, позволяет проводить анализ программ на виртуальных машинах, не предоставляющих интерфейс для динамической инструментации. Анализ построенной модели и поиск потенциальных состояний гонки осуществляется при помощи инструмента ThreadSanitizer Offline. Благодаря использованию инструментации байт-кода наличие связи с исходным кодом для проведения анализа не является необходимым, однако это позволяет более точно определить причины возникновения ошибки. Реализация была проверена на ряде проектов с открытым исходным кодом и продемонстрировала свою эффективность для поиска состояний гонки.
Ключевые слова: динамический анализ, состояния гонки, ошибки синхронизации.
Финансовая поддержка Номер гранта
Российский фонд фундаментальных исследований 14-07-00609
Работа проводится при финансовой поддержке Российского фонда фундаментальных исследований, номер проекта 14-07-00609
Реферативные базы данных:
Тип публикации: Статья
Образец цитирования: М. К. Ермаков, С. П. Вартанов, “Поиск состояний гонки в программах на языке Java при помощи динамического анализа”, Труды ИСП РАН, 27:2 (2015), 39–52
Цитирование в формате AMSBIB
\RBibitem{ErmVar15}
\by М.~К.~Ермаков, С.~П.~Вартанов
\paper Поиск состояний гонки в программах на языке Java при помощи динамического анализа
\jour Труды ИСП РАН
\yr 2015
\vol 27
\issue 2
\pages 39--52
\mathnet{http://mi.mathnet.ru/tisp121}
\crossref{https://doi.org/10.15514/ISPRAS-2015-27(2)-3}
\elib{https://elibrary.ru/item.asp?id=23827845}
Образцы ссылок на эту страницу:
  • https://www.mathnet.ru/rus/tisp121
  • https://www.mathnet.ru/rus/tisp/v27/i2/p39
  • Citing articles in Google Scholar: Russian citations, English citations
    Related articles in Google Scholar: Russian articles, English articles
    Труды института системного программирования РАН
    Статистика просмотров:
    Страница аннотации:174
    PDF полного текста:207
    Список литературы:31
     
      Обратная связь:
     Пользовательское соглашение  Регистрация посетителей портала  Логотипы © Математический институт им. В. А. Стеклова РАН, 2024