Consider the following program: Boolean blocked [2]; Int turn; Void P (int id) { While (true) {

Question:

Consider the following program:
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;
Par begin (P (0), P (1));
}
This software solution to the mutual exclusion problem for two processes is proposed in [HYMA66]. Find a counterexample that demonstrates that this solution is incorrect. It is interesting to note that even the Communications of the ACM was fooled on this one
Fantastic news! We've Found the answer you've been seeking!

Step by Step Answer:

Related Book For  book-img-for-question
Question Posted: