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