Dynamic deadlock avoidance in systems code using statically inferred effects

  • Authors:
  • Prodromos Gerakios;Nikolaos Papaspyrou;Konstantinos Sagonas;Panagiotis Vekris

  • Affiliations:
  • National Technical University of Athens, Greece;National Technical University of Athens, Greece;National Technical University of Athens, Greece and Uppsala University, Sweden;National Technical University of Athens, Greece

  • Venue:
  • PLOS '11 Proceedings of the 6th Workshop on Programming Languages and Operating Systems
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Deadlocks can have devastating effects in systems code. We have developed a type and effect system that provably avoids them and in this paper we present a tool that uses a sound static analysis to instrument multithreaded C programs and then links these programs with a run-time system that avoids possible deadlocks. In contrast to most other purely static tools for deadlock freedom, our tool does not insist that programs adhere to a strict lock acquisition order or use lock primitives in a block-structured way, thus it is appropriate for systems code and OS applications. We also report some very promising benchmark results which show that all possible deadlocks can automatically be avoided with only a small run-time overhead. More importantly, this is done without having to modify the original source program by altering the order of resource acquisition operations or by adding annotations.