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