ACM Home Page
Please provide us with feedback. Feedback
What are race conditions?: Some issues and formalizations
Full text PdfPdf (1.16 MB)
Source ACM Letters on Programming Languages and Systems (LOPLAS) archive
Volume 1 ,  Issue 1  (March 1992) table of contents
Pages: 74 - 88  
Year of Publication: 1992
ISSN:1057-4514
Authors
Robert H. B. Netzer  Univ. of Wisconsin, Madison
Barton P. Miller  Univ. of Wisconsin, Madison
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 20,   Downloads (12 Months): 158,   Citation Count: 41
Additional Information:

abstract   references   cited by   index terms   review   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/130616.130623
What is a DOI?

ABSTRACT

In shared-memory parallel programs that use explicit synchronization, race conditions result when accesses to shared memory are not properly synchronized. Race conditions are often considered to be manifestations of bugs, since their presence can cause the program to behave unexpectedly. Unfortunately, there has been little agreement in the literature as to precisely what constitutes a race condition. Two different notions have been implicitly considered: one pertaining to programs intended to be deterministic (which we call general races) and the other to nondeterministic programs containing critical sections (which we call data races). However, the differences between general races and data races have not yet been recognized. This paper examines these differences by characterizing races using a formal model and exploring their properties. We show that two variations of each type of race exist: feasible general races and data races capture the intuitive notions desired for debugging and apparent races capture less accurate notions implicitly assumed by most dynamic race detection methods. We also show that locating feasible races is an NP-hard problem, implying that only the apparent races, which are approximations to feasible races, can be detected in practice. The complexity of dynamically locating apparent races depends on the type of synchronization used by the program. Apparent races can be exhaustively located efficiently only for weak types of synchronization that are incapable of implementing mutual exclusion. This result has important implications since we argue that debugging general races requires exhaustive race detection and is inherently harder than debugging data races (which requires only partial race detection). Programs containing data races can therefore be efficiently debugged by locating certain easily identifiable races. In contrast, programs containing general races require more complex debugging techniques.


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
ALLEN, T. R., AND PADUA, D. A. Debugging Fortran in a shared memory machine. In Proceedings of the 1987 International Conference on Parallel Processing (St. Charles, IL, Aug. 1987), pp. 721-727.
2
 
3
BERNSTEIN, A. J. Analysis of programs for parallel processing. IEEE Trans. Electronic Comput. EC-15 5 (Oct. 1966), 757-763.
4
5
 
6
DINNING, A., AND SCHONBERG, E. The task recycling technique for detecting access anomalies on-the-fly. IBM Tech. Rep. RC 15385, Jan. 1990.
7
8
9
10
 
11
HEMLBOLD, D. P., McDOWELL, C. E., AND WANG, J.-Z. Analyzing traces with anonymous synchronization. In Proceedings of the 1990 International Conference on Parallel Processing (St. Charles, IL, Aug. 1990), pp. 70-77.
 
12
 
13
 
14
LAMPORT, L. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Comput. C-28 9 (Sept. 1979), 690-691.
15
16
17
18
 
19
NETZER, R. H. B., AND MILLER, B.P. On the complexity of event ordering for shared-memory parallel program executions. In Proceedings of the 1990 International Conference on Parallel Processing (St. Charles, IL, Aug. 1990), pp. II-93-II-97.
20
 
21
 
22
NETZER, R. H. B., AND MILLER, B.P. Detecting data races in parallel program executions. In Advances in Languages and Compilers for Parallel Processing, A. Nicolau, D. Gelernter, T. Gross, and D. Padua, Eds. MIT Press 1991, 109-129.
 
23
NETZER, R. H. B., AND GHOSH, S. Efficient race condition detection for shared-memory programs with post/wait synchronization. In Proceedings of the 1992 International Conference on Parallel Processing (St. Charles, IL, Aug. 1992).
 
24
NUDLER, I., AND RUDOLPH, L. Tools for the efficient development of efficient parallel programs. In Proceedings of the 1st Israeli Conference on Computer System Engineering (1988).
25
26

CITED BY  41


REVIEW

"Lishing Liu : Reviewer"

Race conditions occur during the execution of parallel programs when accesses to shared data are not properly synchronized. Detection of race conditions is a fundamental aspect of the debugging of parallel programs. Various types of research w  more...

Collaborative Colleagues:
Robert H. B. Netzer: colleagues
Barton P. Miller: colleagues