Detection of Deadlock Potentials in Multithreaded Programs

Download Now Free registration required

Executive Summary

Concurrent programs are well known for containing errors that are difficult to detect, reproduce, and diagnose. Deadlock is a common concurrency error, which occurs when a set of threads are blocked, due to each attempting to acquire a lock held by another. This paper presents a collection of highly scalable static and dynamic techniques for exposing potential deadlocks. The basis is a known algorithm, which, when locks are acquired in a nested fashion, captures the nesting order in a lock graph. A cycle in the graph indicates a deadlock potential. The authors propose three extensions to this basic algorithm to eliminate, or label as low severity, false warnings of possible deadlocks (false positives).

  • Format: PDF
  • Size: 2118.5 KB