|
[ Publications ]
[ Research Opportunities ]
[ Partners & Supporters ]
[ Earlier Work ]
|
|
Static Detection of Atomicity Violations in Object-Oriented Programs
|
| Christoph von Praun,
Thomas Gross,
Static Detection of Atomicity Violations in Object-Oriented Programs, Record of ECOOP Workshop on Formal Techniques for Java-like Programs (FTfJP), July 2003.
[FTFJP_2003.pdf]
|
|
Violations of atomicity are possible sources of errors in parallel
programs. A violation occurs if the effect of a method execution
depends on the execution of concurrent threads that operate on the
same or overlapping parts of a shared data structure. All accesses to
shared data are assumed to be ordered through synchronization, hence
common techniques for data race and deadlock detection are not able to
find such errors.
We have developed a static analysis that infers atomicity constraints
and identifies potential violations. The analysis is based on an
abstract model of threads and data. A symbolic execution tracks object
locking and access and provides information that is finally used to
determine potential violations of atomicity. We provide a detailed
evaluation of our algorithm for a number of Java benchmarks.
Although the algorithm does not guarantee to find all violations of
atomicity, our experience shows that our method is efficient and
effective in determining several known synchronization problems in a
set of application programs and the Java library. The problem of
overreporting that is commonly encountered due to conservatism in
static analyses is moderate.
|
|
[ Publications ]
[ Research Opportunities ]
[ Partners & Supporters ]
[ Earlier Work ]
|