Download:
|
by Gleb Naumovich, George S. Avrunin
In Proceedings of the Sixth ACM SIGSOFT Symposium on the Foundations of Software Engineering
ftp://ftp.cs.umass.edu/pub/techrept/techreport/1998/UM-CS-1998-023.ps
Add To MetaCart
Abstract:
Information about which pairs of statements in a concurrent program can execute in parallel is important for optimizing and debugging programs, for detecting anomalies, and for improving the accuracy of dataflow analysis. In this paper, we describe a new data flow algorithm that finds a conservative approximation of the set of all such pairs. We have carried out an initial comparison of the precision of our algorithm and that of the most precise of the earlier approaches, Masticola and Ryder's non-concurrency analysis [8], using a sample of 147 concurrent Ada programs that includes the collection assembled by Masticola. For these examples, our algorithm was almost always more precise than non-concurrency analysis, in the sense that the set of pairs identified by our algorithm as possibly happening in parallel is a proper subset of the set identified by non-concurrency analysis. In 123 cases, we were able to use reachability analysis to determine exactly the set of pairs of statements that may happen in parallel. For these cases, there were a total of only six pairs identified by our algorithm that cannot actually happen in parallel.
Citations
|
266
|
Flow Analysis of Computer Programs
– Hecht
- 1977
|
|
175
|
Compositional pointer and escape analysis for Java programs
– Whaley, Rinard
- 1999
|
|
158
|
Precise Concrete Type Inference for Object-Oriented Languages
– Plevyak, Chien
- 1994
|
|
146
|
A Note on Reliable Full-Duplex Transmission over Half-Duplex Links
– Bartlett, Scantlebury, et al.
- 1969
|
|
124
|
Data flow analysis for verify-ing properties of concurrent programs
– Dwyer, Clarke
- 1994
|
|
103
|
Evaluating deadlock detection methods for concurrent software
– Corbett
- 1996
|
|
64
|
Complexity of analyzing the synchronization structure of concurrent programs
– Taylor
- 1983
|
|
53
|
Debugging Ada tasking programs
– Helmbold, Luckham
- 1985
|
|
51
|
Demand interprocedural dataflow anafysis~’ Unpublished Report, Computer Sciences Department, University of Wk.consin, Madkon, WI (). (In preparation
– Horwitz, Reps, et al.
|
|
51
|
Static analysis of low-level synchronization
– Callahan, Subhlok
- 1988
|
|
42
|
Context-sensitive synchronization-sensitive analysis isundecidable
– Ramalingam
- 2000
|
|
41
|
Non-concurrency analysis
– Masticola, Ryder
- 1993
|
|
33
|
Analysis of event synchronization in a parallel programming tool
– Callahan, Kennedy, et al.
- 1990
|
|
33
|
Concurrency analysis in the presence of procedures using a data flow framework
– Duesterwald, Soffa
- 1991
|
|
31
|
An efficient algorithm for computing MHP information for concurrent java programs
– Naumovich, Avrunin, et al.
- 1998
|
|
30
|
Task interaction graphs for concurrency analysis
– Long, Clarke
- 1989
|
|
30
|
Verification of concurrent software with FLAVERS
– Naumovich, Clarke, et al.
- 1997
|
|
26
|
A Calculus of Communicating Systems, volume 92
– Milner
- 1980
|
|
23
|
Static Detection of Deadlocks in Polynomial Time
– Masticola
- 1995
|
|
22
|
Pointer-induced aliasing: A problem taxonomy
– Landi, Ryder
- 1991
|
|
21
|
Properties of data flow frameworks
– Marlowe, Ryder
- 1990
|
|
20
|
Data Flow Analysis for Verifying Correctness Properties of Concurrent Programs
– Dwyer
- 1995
|
|
14
|
Static infinite wait anomaly detection in polynomial time
– Masticola, Ryder
- 1990
|
|
13
|
Lattice frameworks for multisource and bidirectional data flow problems
– Masticola, Marlowe, et al.
- 1995
|
|
7
|
Concurrent algorithms for real-time memory management
– Ford
- 1988
|