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