Consider the following program: Boolean blocked [2]; Int turn; Void P (int id) { While (true) {
Question:
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
Operating Systems Internals and Design Principles
ISBN: 978-0133805918
8th edition
Authors: William Stallings
Question Posted: