|
Data race detection in Java programs using synchronization contracts
D. Tsitelova, V. Trifanovb a Expert-Sistema Ltd., 10/1 Barochnaya Str., St. Petersburg 197022, Russian Federation
b Expert-Sistema SZ Ltd., 10/1 Barochnaya Str., St. Petersburg 197022, Russian Federation
Abstract:
Data race occurs in a multithreaded program when several threads simultaneously access the same memory location and at least one of them has a write access. Data races are hardly reproducible and can damage global data structures; so, research in the area of automatic race detection methods has been carried out for more than 20 years. This article focuses on the issue of improving performance of dynamic race detection in Java programs without loss of precision. Synchronization contracts — partial specifications of multithreaded behavior — are introduced for solving this problem. Using contracts allows excluding parts of application's code that are not interesting from the race detection perspective (e. g., external libraries). The paper also covers advantages and restrictions of the approach, the contracts specification language, and some implementation details.
Keywords:
multithreading; data race; dynamic analysis; automatic error detection.
Received: 20.01.2014
Citation:
D. Tsitelov, V. Trifanov, “Data race detection in Java programs using synchronization contracts”, Sistemy i Sredstva Inform., 24:2 (2014), 114–130
Linking options:
https://www.mathnet.ru/eng/ssi348 https://www.mathnet.ru/eng/ssi/v24/i2/p114
|
Statistics & downloads: |
Abstract page: | 217 | Full-text PDF : | 91 | References: | 53 |
|