Deadlock Checking by a Behavioral Effect System for Lock Handling

TitleDeadlock Checking by a Behavioral Effect System for Lock Handling
Publication TypeJournal Article
Year of Publication2012
AuthorsK. I. Pun, M. Steffen, and V. Stolz
JournalJournal of Logic and Algebraic Programming
Volume81
Issue3
PublisherElsevier
Place PublishedNWPT
KeywordsAbstraction, Behavioral type and effect systems, Concurrency, Deadlock prevention, Simulation relation, static analysis
Abstract

 Deadlocks are a common error in programs with lock-based concurrency and are hard to avoid or even to detect. One way for deadlock prevention is to statically analyze the program code to spot sources of potential deadlocks. Often static approaches try to confirm that the lock-taking adheres to a given order, or, better, to infer that such an order exists. Such an order precludes situations of cyclic waiting for each other’s resources, which constitute a deadlock.

In contrast, we do not enforce or infer an explicit order on locks. Instead we use a behavioral type and effect system that, in a first stage, checks the behavior of each thread or process against the declared behavior, which captures potential interaction of the thread with the locks. In a second step on a global level, the state space of the behavior is explored to detect potential deadlocks. We define a notion of deadlock-sensitive simulation to prove the soundness of the abstraction inherent in the behavioral description. Soundness of the effect system is proven by subject reduction, formulated such that it captures deadlock-sensitive simulation.

 

DOI10.1016/j.jlap.2011.11.001
Refereed DesignationRefereed