Semaphores
ä Hence, in fact, a semaphore is a record
(structure):
type semaphore = record
                   count: integer;
                   queue: list of
process
                 end;
var S: semaphore;
ä When a process must wait for a
semaphore S, it is blocked and put on the
semaphore’s queue
ä The signal operation removes (according
to a fair policy like FIFO) one process
from the queue and puts it in the list of
ready processes