Semaphores have been used extensively in programming concurrent tasks.
Various extensions have been proposed for problems in which tradition
al semaphores turned out to be difficult to use, The extended semaphor
e primitives investigated here are based on the version of semaphores
implemented in UNIX System V. Implementation issues are discussed and
practical illustrations of their use are provided. In particular, algo
rithms for a variety of common process scheduling schemes are shown. T
hese solutions are evaluated and the strengths and weaknesses of UNIX
semaphores are discussed.