Skip to main navigation Skip to search Skip to main content

Detecting potential deadlocks with static analysis and run-time monitoring

  • Stony Brook University

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

47 Scopus citations

Abstract

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 violations, with Boyapati et al.'s deadlock types. We give an algorithm that infers deadlock types for a given program and an algorithm that determines, based on the result of type inference, which run-time checks can safely be omitted, The new type system, called Deadlock-Free EPAJ (DEPAJ), has the added benefit of giving stronger atomicity guarantees than previous atomicity type systems.

Original languageEnglish
Title of host publicationHardware and Software, Verification and Testing - First International Haifa Verification Conference, Revised Selected Papers
Pages191-207
Number of pages17
DOIs
StatePublished - 2006
Event1st International Haifa Verification Conference on Hardware and Software, Verification and Testing - Haifa, Israel
Duration: Nov 13 2005Nov 16 2005

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume3875 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference1st International Haifa Verification Conference on Hardware and Software, Verification and Testing
Country/TerritoryIsrael
CityHaifa
Period11/13/0511/16/05

Fingerprint

Dive into the research topics of 'Detecting potential deadlocks with static analysis and run-time monitoring'. Together they form a unique fingerprint.

Cite this