P/C problem: Bounded buffer
Producer
repeat
produce item v;
while((in+1)%n == out) NOP;
b[in] = v;
in = ( in + 1)% n;
forever;
How to enforce bufsize?
Consumer
repeat
while (in == out) NOP;
w = b[out];
out = (out + 1)%n;
consume w;
forever;
ANS: Using another counting semaphore.
Previous slide
Next slide
Back to first slide
View graphic version