Formal Aspects of Computing

, Volume 25, Issue 6, pp 947–969

Starvation-free mutual exclusion with semaphores

Authors

    • Department of Computing ScienceUniversity of Groningen
  • Mark IJbema
    • Department of Computing ScienceUniversity of Groningen
Open AccessOriginal Article

DOI: 10.1007/s00165-011-0219-y

Cite this article as:
Hesselink, W.H. & IJbema, M. Form Asp Comp (2013) 25: 947. doi:10.1007/s00165-011-0219-y

Abstract

The standard implementation of mutual exclusion by means of a semaphore allows starvation of processes. Between 1979 and 1986, three algorithms were proposed that preclude starvation. These algorithms use a special kind of semaphore. We model this so-called buffered semaphore rigorously and provide mechanized proofs of the algorithms. We prove that the algorithms are three implementations of one abstract algorithm in which every competing process is overtaken not more than once by any other process. We also consider a so-called polite semaphore, which is weaker than the buffered one and is strong enough for one of the three algorithms. Refinement techniques are used to compare the algorithms and the semaphores.

Keywords

semaphorebinary semaphoremutual exclusionrefinementstarvation freedom
Download to read the full article text

Copyright information

© The Author(s) 2011