Question: Consider the following program: boolean blocked [2]; int turn; void P (int id) { while (true) { blocked[id] = true; while (turn != id) {
boolean blocked [2];
int turn;
void P (int id)
{
while (true) {
blocked[id] = true;
while (turn != id) {
while (blocked[1-id])
/* do nothing */;
turn = id;
}
/* critical section */
blocked[id] = false;
/* remainder */
}
}
void main()
{
blocked[0] = false;
blocked[1] = false;
turn = 0;
parbegin (P(0), P(1));
}
Step by Step Solution
3.37 Rating (172 Votes )
There are 3 Steps involved in it
Consider the case in which turn equals 0 and P1 sets block... View full answer
Get step-by-step solutions from verified subject matter experts
Document Format (1 attachment)
451-C-S-D-B-O-S (68).docx
120 KBs Word File
