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.

A simple implementation of the produce() and consume() functions is:

int theProduct;

int produce(){

return theProduct++;

}

void consume(int i){

printf(%i, i);

}

Note: Do not use semaphores or other synchronization mechanisms. Rely on threads instead (include the pthread.h library). You may use sleep and wakeup commands.

Deliverables:

  1. An explanation of your approach to implementation and its reasoning
  2. Program execution results:
    1. All the source code files (upload to your BitBucket repository and to LoudCloud)
    2. Comment header in the code, describing the solution and identifying the programmer
    3. Screenshots showing successful and correct execution of the code

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!