Font Size: a A A

Detecting atomicity violations via integrated dynamic and static analysis

Posted on:2010-12-24Degree:M.SType:Thesis
University:University of WyomingCandidate:Chen, QichangFull Text:PDF
GTID:2442390002984426Subject:Computer Science
Abstract/Summary:
The reality of multi-core hardware has made concurrent programs pervasive. Unfortunately, writing correct concurrent programs is difficult. Atomicity violation, which is caused by concurrently executing code unexpectedly violating the atomicity of a code segment, is one of the most common concurrency errors. However, atomicity violations are hard to find using traditional testing and debugging techniques.;This thesis presents a hybrid approach that integrates static and dynamic analyses to attack this problem. We first perform static analysis to obtain summaries of synchronizations and accesses to shared variables. The static summaries are then instantiated with runtime values during dynamic executions to speculatively approximate the behaviors of branches that are not taken. Compared to dynamic analysis, the hybrid approach is able to detect atomicity violations in unexecuted parts of the code. Compared to static analysis, the hybrid approach produces fewer false alarms. We implemented this hybrid analysis in a tool called HAVE that detects atomicity violations in multi-threaded Java programs and integrated it with the dynamic thread escape analysis to improve the performance and accuracy. Experimental evaluations on several benchmarks and real-world applications demonstrate promising results.
Keywords/Search Tags:Atomicity, Dynamic, Static
Related items