Question
Write a producer-consumer program based on Figure 5.16, using semaphores and a bounded buffer, and the program from Pgm1 in which the produce function is
Write a producer-consumer program based on Figure 5.16, using semaphores and a bounded buffer, and the program from Pgm1 in which the produce function is to calculate the sum of one thousand uniform random numbers on the interval [0,1) divided by five hundred. The producer is required to produce precisely one million values. Have ten consumer Pthreads which consume one sum at a time which is added it to their individual partial totals. The final step of the main is to output the output the ten partial totals. Both producer and consumer require modifications to account for the limited production. Pseudocode for the produce and consume procedures is provided below. Does the operating system provide an equal allotment of sums to each consumer thread? What does that indicate?
Pmg 1 : from https://linux.die.net/man/3/pthread_create
*program boundedbuffer const int sizeofbuffer* buffer size* semaphore s 1, n= 0, e= sizeofbuffer; void producer() while (true) produce)i semWait(e) semWait(s); append(); semSignal(s); semSignal (n) void consumer () while (true) f semWait(n); semWait(s); take)i semSignal(s); semSignal (e); consume void main() parbegin (producer, consumer); Figure 5.16 A Solution to the Bounded-Buffer Producer/Consumer Problem Using Semaphores *program boundedbuffer const int sizeofbuffer* buffer size* semaphore s 1, n= 0, e= sizeofbuffer; void producer() while (true) produce)i semWait(e) semWait(s); append(); semSignal(s); semSignal (n) void consumer () while (true) f semWait(n); semWait(s); take)i semSignal(s); semSignal (e); consume void main() parbegin (producer, consumer); Figure 5.16 A Solution to the Bounded-Buffer Producer/Consumer Problem Using Semaphores
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started