ACM Home Page
Please provide us with feedback. Feedback
Atomizer: a dynamic atomicity checker for multithreaded programs
Full text PdfPdf (195 KB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages table of contents
Venice, Italy
Pages: 256 - 267  
Year of Publication: 2004
ISBN:1-58113-729-X
Also published in ...
Authors
Cormac Flanagan  University of California at Santa Cruz, Santa Cruz, CA
Stephen N Freund  Williams College, Williamstown, MA
Sponsors
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 12,   Downloads (12 Months): 103,   Citation Count: 53
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/964001.964023
What is a DOI?

ABSTRACT

Ensuring the correctness of multithreaded programs is difficult, due to the potential for unexpected interactions between concurrent threads. Much previous work has focused on detecting race conditions, but the absence of race conditions does not by itself prevent undesired thread interactions. We focus on the more fundamental non-interference property of atomicity; a method is atomic if its execution is not affected by and does not interfere with concurrently-executing threads. Atomic methods can be understood according to their sequential semantics, which significantly simplifies (formal and informal) correctness arguments.This paper presents a dynamic analysis for detecting atomicity violations. This analysis combines ideas from both Lipton's theory of reduction and earlier dynamic race detectors. Experience with a prototype checker for multithreaded Java code demonstrates that this approach is effective for detecting errors due to unintended interactions between threads. In particular, our atomicity checker detects errors that would be missed by standard race detectors, and it produces fewer false alarms on benign races that do not cause atomicity violations. Our experimental results also indicate that the majority of methods in our benchmarks are atomic, supporting our hypothesis that atomicity is a standard methodology in multithreaded programming.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
C. Artho, K. Havelund, and A. Biere. High-level data races. In The First International Workshop on Verification and Validation of Enterprise Information Systems, 2003.
2
3
 
4
5
 
6
A. D. Birrell. An introduction to programming with threads. Research Report~35, Digital Equipment Corporation Systems Research Center, 1989.
7
8
 
9
M. Burrows and K. R. M. Leino. Finding stale-value errors in concurrent programs. Technical Note 2002-004, Compaq Systems Research Center, 2002.
 
10
11
 
12
 
13
14
15
 
16
 
17
 
18
 
19
 
20
21
22
23
24
25
 
26
S. N. Freund and S. Qadeer. Checking concise specifications for multithreaded software. In Workshop on Formal Techniques for Java-like Languages, 2003.
 
27
28
29
 
30
J. Hatcliff, Robby, and M. B. Dwyer. Verifying atomicity specifications for concurrent object-oriented software using model-checking. In Proceedings of the International Conference on Verification, Model Checking and Abstract Interpretation, 2004.
31
32
 
33
Java Grande Forum. Java Grande benchmark suite. Available from http://www.javagrande.org/, 2003.
 
34
35
 
36
 
37
38
39
40
 
41
42
 
43
 
44
Polyspace technologies, 2003. Available at http://www.polyspace.com.
45
46
47
 
48
Standard Performance Evaluation Corporation. SPEC benchmarks. Available from http://www.spec.org/, 2003.
 
49
N. Sterling. Warlock: A static data race analysis tool. In Proceedings of the USENIX Winter Technical Conference, pages 97--106, 1993.
50
51
 
52
C. von Praun and T. Gross. Static detection of atomicity violations in object-oriented programs. In Workshop on Formal Techniques for Java-like Programs, 2003.
 
53
L. Wang and S. D. Stoller. Run-time analysis for atomicity. In Proceedings of the Workshop on Runtime Verification, volume 89(2) of Electronic Notes in Computer Science. Elsevier, 2003.
 
54
World Wide Web Consortium. Jigsaw. Available from http://www.w3c.org, 2001.

CITED BY  54

Collaborative Colleagues:
Cormac Flanagan: colleagues
Stephen N Freund: colleagues