semaphore n //semafor ogolny, inicjalna wartość n = 0, liczba elementów w buforze semaphore e //liczba elementów pustych, inicjalna wartość e = buffer_size binary semaphore s //semafor binarny, inicjalna wartość s = 1
process producent begin
while true begin
produkuj
wait(e)
wait(s)
wstaw
signal(s)
signal(n)
process konsument begin
while true wait(n) wait(s) pobierz signal(s) signal(e) konsumuj
end