Applying synchronization contracts approach for dynamic detection of data races in industrial applications

Бесплатный доступ

Data race occurs in multithreaded program when several threads simultaneously access same shared data and at least of them writes. Two main approaches to automatic race detection - static and dynamic - have their pros and cons. Dynamic analysis can provide best precision on certain program execution but introduce enormous runtime overheads. Earlier we introduced high-performance approach that improves performance of dynamic race detection. The key idea is to define and exclude external trusted parts of code (e.g. libraries) from analysis and replace them with specifications of their behavior in multithreaded environment. Possible behavior was classified and corresponding language for describing contracts developed. Evaluation on lightweight applications confirmed performance boost but further industrial usage of detector revealed some problems. This article covers that problems, introduces method and architecture of contract processing module and some technical features that help to apply proposed approach on high load production systems.

Еще

Data race, multithreading, dynamic analysis, automatic error detection

Короткий адрес: https://sciup.org/14916550

IDR: 14916550   |   DOI: 10.15514/ISPRAS-2018-30(3)-4

Статья научная