Question
Using the linux man pages from https://linux.die.net/man/3/pthread_create and https://linux.die.net/man/7/sem_overview Write a producer-consumer program based on Figure 5.16, using semaphores and a bounded buffer, and the
Using the linux man pages from https://linux.die.net/man/3/pthread_create and https://linux.die.net/man/7/sem_overview
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?
/ program boundedbuffer / const int sizeofbuffer* buffer size/ semaphore s-1,n-0,e sizeofbuffer; void producer ) while (true) produce (0 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, con sumer): Video Note Figure 5.16 A Solution to the Bounded-Buffer Producer/Consumer Problem Using SemaphoresStep 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