Reference no: EM132470600
Problem 1
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 Problems below.
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.
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.
Problem 2
Some researchers are working in a lab. Due to safety regulations, only five people are allowed in the lab at the same time. The code for each researcher is given below. It uses a semaphore lab, to represent whether there is space left in the lab for more people. S1, S2 and S3 are labels identifying the line code.
Researcher code:
S1: wait(lab);
S2: work();
S3: signal(lab);
(a) There are eight researchers, A, B, C, D, E, F, G and H, working in the lab. Each researcher operates according to the above code. Your task is to give an execution trace that contains both of the following:
The trace should show what happens when there are less than five researches in the lab and one or more of them leave.
The trace should show what happens when there are five researchers in the lab and another researcher or several researchers want to enter.
The trace must start with an empty lab and show all the steps of each of the researchers as they enter/leave.
You must show the value of lab after each wait or signal step. Ensure that you state the initial value of lab.
If a wait operation executes, indicate whether the process succeeds or is placed in the queue. If a signal operation executes, indicate whether the value is changed or a sleeping process is woken up.
Each line of your trace should have the following format:
Statement executed including which Researcher process (e.g., M.S1 means that the researcher named M executed statement S1); the value of the lab semaphore (e.g., lab=2); whether the wait succeeded or was placed in the queue/ whether the signal changed the semaphore value or a sleeping process woke up.
For example: M.S1; lab=2; wait succeeded.
(b) The code has now been modified. Each time a researcher enters the lab, an integer totalEntered is incremented. The variable is initially 0. The new code is given below:
Researcher code:
S1: wait(lab);
S2: totalEntered = totalEntered + 1;
S3: work();
S4: signal(lab);
The code given has a problem. The researchers have found that sometimes the totalEntered value does not reflect the actual number of researchers who have entered the lab.
Explain, in words, how this situation could occur.
Show a trace that demonstrates the problem occurring. Note that you are not being asked to solve the problem.
Examples of patient satisfaction survey
: Can someone help with examples of patient satisfaction survey questions for the different HCAHPS categories?
|
Prepare journal entries to record the transactions in firms
: Prepare journal entries to record the transactions in the firm's accounting records. (If no entry is required for a transaction/event, select "No journal entry)
|
Prepare a bank reconciliation in good form at September
: The Brown Company bank statement for September 30, 2015 showed a balance of $1,581.50. Prepare a bank reconciliation in good form at September 30
|
Prepare? common-size income statements
: Prepare? common-size income statements. ?(Round your answers to one decimal? place, X.X%.) Determine the Data for Gomez Inc. and Gibson Corp.?
|
Show a trace that demonstrates the problem occurring
: Show a trace that demonstrates the problem occurring. Note that you are not being asked to solve the problem - Explain what will happen if the order.
|
Preparing a vertical analysis of capitol assets
: Preparing a vertical analysis of Capitol assets for 2018?, then vertical analysis for 2017. ?(Round the percent of total amounts to one decimal? place)
|
Show an income statement and a statement of owner equity
: Gasoline Expense 8,300 Supplies 4,300 Loans Payable 81,000 Initial Investment 54,500. Show an income statement and a statement of owner equity
|
Prepare journal entries in good form for provide transaction
: Prepare journal entries in good form for provided transaction. Post the journal entries into T-accounts (make sure you have a total amount for each account).
|
MNG91002 Entrepreneurship Assignment
: MNG91002 Entrepreneurship Assignment Help and Solution, Southern Cross University - Assessment Writing Service - Wants to Change the Future of Smartphones
|