Formalising progress properties of non-blocking programs

  • Authors:
  • Brijesh Dongol

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

  • Venue:
  • ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

A non-blocking program is one that uses non-blocking primitives, such as load-linked/store-conditional and compare-and-swap, for synchronisation instead of locks so that no process is ever blocked. According to their progress properties, non-blocking programs may be classified as wait-free, lock-free or obstruction-free. However, a precise description of these properties does not exist and it is not unusual to find a definition that is ambiguous or even incorrect. We present a formal definition of the progress properties so that any confusion is removed. The formalisation also allows one to prove the widely believed presumption that wait-freedom is a special case of lock-freedom, which in turn is a special case of obstruction-freedom.