RUS  ENG
Full version
JOURNALS // Sistemy i Sredstva Informatiki [Systems and Means of Informatics] // Archive

Sistemy i Sredstva Inform., 2014 Volume 24, Issue 2, Pages 114–130 (Mi ssi348)

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

DOI: 10.14357/08696527140208



Bibliographic databases:


© Steklov Math. Inst. of RAS, 2024