Sciweavers

HVC
2005
Springer

Detecting Potential Deadlocks with Static Analysis and Run-Time Monitoring

14 years 6 months ago
Detecting Potential Deadlocks with Static Analysis and Run-Time Monitoring
Concurrent programs are notorious for containing errors that are difficult to reproduce and diagnose. A common kind of concurrency error is deadlock, which occurs when a set of threads is blocked each trying to acquire a lock held by another thread in that set. Static and dynamic (run-time) analysis techniques exist to detect deadlocks. Havelund’s GoodLock algorithm detects potential deadlocks at runtime. However, it detects only potential deadlocks involving exactly two threads. This paper presents a generalized version of the GoodLock algorithm that detects potential deadlocks involving any number of threads. Run-time checking may miss errors in unexecuted code. On the positive side, run-time checking generally produces fewer false alarms than static analysis. This paper explores the use of static analysis to automatically reduce the overhead of run-time checking. We extend our type system, Extended Parameterized Atomic Java (EPAJ), which ensures absence of races and atomicity viol...
Rahul Agarwal, Liqiang Wang, Scott D. Stoller
Added 27 Jun 2010
Updated 27 Jun 2010
Type Conference
Year 2005
Where HVC
Authors Rahul Agarwal, Liqiang Wang, Scott D. Stoller
Comments (0)