DocumentCode
724743
Title
Dynamic data race detection in Java-programs using synchronization contracts
Author
Tsitelov, Dmitry ; Trifanov, Vitaly
Author_Institution
Devexperts LLC, St. Petersberg, Russia
fYear
2013
fDate
10-12 Oct. 2013
Firstpage
3
Lastpage
8
Abstract
Data race occurs in a multi-threaded program when several threads simultaneously access the same memory location and at least one of them is a write access. Data races can damage global data structures and it´s hard to detect them manually, so research in the area of automatic race detection methods has been carried out for more than 20 years. This article covers aspects of performance and precision of dynamic race detection in Java programs and proposes the idea of lowering the overheads of dynamic analysis using synchronization contracts. Synchronization contracts are mainly based on specifying pairs of methods, that being called from different threads provide synchronization between these threads. Contracts serve for exclusion of application´s code parts that are not interesting from race detection perspective, for example - external libraries. In this paper we describe contracts specification language and some implementation details and discuss advantages and restrictions of our approach.
Keywords
Java; data structures; formal specification; multi-threading; Java programs; automatic race detection methods; dynamic analysis; dynamic data race detection; global data structures; memory location; multithreaded program; specification language; synchronization contracts; Clocks; Contracts; Detectors; Instruction sets; Java; Message systems; Synchronization; automatic error detection; data race; dynamic analysis; multithreading;
fLanguage
English
Publisher
ieee
Conference_Titel
Tools & Methods of Program Analysis (TMPA), 2013
Conference_Location
Kostroma
Print_ISBN
978-0-9860773-1-9
Type
conf
DOI
10.1109/TMPA.2013.7163714
Filename
7163714
Link To Document