Question: In this project students will design, implement, and evaluate a computing-based solution to meet a given set of computing requirements. Students will demonstrate the ability

In this project students will design, implement, and evaluate a computing-based solution to meet a given set of computing requirements. Students will demonstrate the ability to create and manage processes and threads.They will create two processes, Producer and Consumer, using the C functions below:

void producer() {

int i;

while(1){

i = produce();

put(i);

}

}

void consumer() {

int i;

while(1){

i = get();

consume(i);

}

}

The Producer is simply creating numbers, which are passed to the Consumer in a static buffer. The students task is to implement the put() and get() functions. Each function will use a buffer (implemented as a word). The objective is to ensure that the producer is always ahead of the consumer and the consumer does not have to wait.

Deliverables:

  1. An explanation of your approach to implementation and its reasoning

You are allowed to use semaphores and mutexes for this assignment. Since the upcoming assignments will utilize these techniques, I think it would be good for us to use the "Producer and Consumer" algorithm to observe the capabilities of semaphores and mutexes to control thread interactions.

Also, I don't care what you name your functions for inserting or removing your Next_Item from your shared bounded Buffer, so you don't neet to worry about using the names "get()" or "put()" for your function.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!