Semaphore primitives and starvation-free mutual exclusion


Most discussions of semaphore primitives m the literature provide only an informal description of their behavtor, rather than a more prectse definition. These informal descriptions may be incorrect, incomplete, or subject to m~smterpretation. As a result, the literature actually contains several different defimtlons of the semaphore primmves. The differences are important, since the particular choice of definition can affect whether a soluuon to the mutual exclusion problem using semaphore primitives allows the possibility of process starvation. An attempt is made to alleviate some of the confusion by gtving precise defmittons of two varteties of semaphore prtmtttves, here called weak and blocked-set primitives. It is then shown that under certain natural condttious, although it is possible to implement starvation-free mutual exclusion with blocked-set semaphores, it is not possible to do so with weak semaphores. Thus weak semaphores are strictly less "powerful" than blocked-set semaphores. Categories and Subject Descnptors' D.I.3 [Programming Techniques]: Concurrent Programming; D.3.1 [Programming Languages]: Formal Definitions and Theory--semantics; D.3.3 [Programming Languages]: Language Constructs--concurrent programming structures; D.4.1 [Operating Systems]: Process Management--concurrency', mutual exclusion, synchronization General Terms. Algorithms, Theory Additional

DOI: 10.1145/322344.322352

Extracted Key Phrases

3 Figures and Tables

Cite this paper

@article{Stark1982SemaphorePA, title={Semaphore primitives and starvation-free mutual exclusion}, author={Eugene W. Stark}, journal={J. ACM}, year={1982}, volume={29}, pages={1049-1072} }