Question: Consider the semaphore solution to the producer / consumer problem seen in class. /* program boundedbuffer */ const int sizeofbuffer = /* buffer size */;
Consider the semaphore solution to the producer / consumer problem seen in class.
/* program boundedbuffer */ const int sizeofbuffer = /* buffer size */; semaphore s = 1, n = 0, e = sizeofbuffer; void producer() { while (true) { produce(); semWait(e); semWait(s); append(); semSignal(s); semSignal(n); } } void consumer() { while (true) { semWait(n); semWait(s); take(); semSignal(s); semSignal(e); consume(); } } void main() { parbegin (producer, consumer); }
What happens when you exchange the following pairs of signals one at a time? Does the solution remain correct? semWait (e); semWait (s) semSignal (s); semSignal (n) semWait (n); semWait (s) semSignal (s); semSignal (e)
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
