Illustrate the purpose of mutex buffer_mutex


Assignment Problem:

A bakery shop has to provide a stream of muffins for customers. The muffins are made by a baker in the kitchen and placed on a conveyor belt. The conveyor belt carries the muffins to where the customers are waiting to buy them.

This scenario has been simulated using two processes: the baker and customer, and a shared conveyor belt implemented as a circular array called conveyor, where each space in the array can hold one muffin. There are two shared general semaphores, empty and full, and a mutex buffer_mutex. In this scenario, there is only multiple bakers and a single customer.

The pseudo-code for the baker is as follows. The baker makes use of an integer variable in for noting the next available space on the conveyor belt.

1. while(true){

2.   muffin = makeMuffin(); // Create a muffin

3.   wait(empty);

4.   wait(buffer_mutex);

5.   conveyor[in] = muffin; // Put the muffin on the conveyor belt

6.   in = (in + 1) mod n;

7.   signal(buffer_mutex);

8.   signal(full);

9. }

The pseudo-code for the customer is as follows. The customer makes use of an integer variable out for noting the next location on the conveyor belt that contains a muffin.

1. while(true){

2. wait(full);

3. muffin = conveyor[out]; // Get a muffin from the conveyor belt

4. conveyor[out] = null;

5. out = (out + 1) mod n;

6. signal(empty);

7. eat(muffin); // Eat the muffin

8. }

This code should be familiar to you as it is similar to the example of the Producer-Consumer problem. Only a few sentences are required for each of the questions below.

Q1. Explain, in words, the purpose of the mod n statement. Explain what is the purpose of mutex buffer_mutex. What problems solves? You may wish to include simple examples.

Q2. Explain what will happen if the order of semaphores in the customer changes. So, we have in line 2  signal(empty) and in line 6  wait(full). Now assume that there is a single baker and a single customer, with an infinite buffer. Explain, in words, what changes should be made and why.

Request for Solution File

Ask an Expert for Answer!!
Data Structure & Algorithms: Illustrate the purpose of mutex buffer_mutex
Reference No:- TGS03047109

Expected delivery within 24 Hours