A general technique for proving lock-freedom

  • Authors:
  • Robert Colvin;Brijesh Dongol

  • Affiliations:
  • ARC Centre for Complex Systems, School of Information Technology and Electrical Engineering, The University of Queensland, Australia;ARC Centre for Complex Systems, School of Information Technology and Electrical Engineering, The University of Queensland, Australia

  • Venue:
  • Science of Computer Programming
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Lock-freedom is a property of concurrent programs which states that, from any state of the program, eventually some process will complete its operation. Lock-freedom is a weaker property than the usual expectation that eventually all processes will complete their operations. By weakening their completion guarantees, lock-free programs increase the potential for parallelism, and hence make more efficient use of multiprocessor architectures than lock-based algorithms. However, lock-free algorithms, and reasoning about them, are considerably more complex. In this paper we present a technique for proving that a program is lock-free. The technique is designed to be as general as possible and is guided by heuristics that simplify the proofs. We demonstrate our theory by proving lock-freedom of two non-trivial examples from the literature. The proofs have been machine-checked by the PVS theorem prover, and we have developed proof strategies to minimise user interaction.