P/C: Bounded Buffer solution
Producer
repeat
produce item v;
BUFSIZE.wait();
MUTEX.wait();
b[in] = v;
in = (in + 1)%n;
MUTEX.signal();
AVAIL.signal();
forever;
What is the initial value of BUFSIZE?
Consumer
repeat
AVAIL.wait();
MUTEX.wait();
w = b[out];
out = (out + 1)%n;
MUTEX.signal();
BUFSIZE.signal();
consume w;
forever;
ANS: size of the bounded buffer.
Previous slide
Next slide
Back to first slide
View graphic version