Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Consider the monitor based solution we had for the dining philosophers problem: monitor DiningPhilosophers { enum { THINKING; HUNGRY, EATING) state[5]; cond_t self[5]; void pickup(int

Consider the monitor based solution we had for the dining philosophers problem:

monitor DiningPhilosophers { enum { THINKING; HUNGRY, EATING) state[5]; cond_t self[5]; void pickup(int i) { state[i] = HUNGRY; test(i); if (state[i] != EATING) self[i].wait(); } void putdown(int i) { state[i] = THINKING; // test left and right neighbors test((i + 4) % 5); test((i + 1) % 5); } void test(int i) { if ((state[(i + 4) % 5] != EATING) && (state[i] == HUNGRY) && (state[(i + 1) % 5] != EATING)) { state[i] = EATING; self[i].signal(); // ----- THIS LINE ----- // } } void initialization_code() { for (int i = 0; i < 5; i++) state[i] = THINKING; } }

How would the functionality of this change if the commented line (THIS LINE) were removed? Justify your answer.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Concepts

Authors: David M Kroenke, David J Auer

6th Edition

0132742926, 978-0132742924

More Books

Students also viewed these Databases questions