Two processes, P1 and P2, need to access a critical section of code.
Consider the following synchronization construct used by the processes:

/* P1 */
while (true) {
  wants1 = true;
  while (wants2==true);
    /* Critical Section */
  wants1=false;
}
/* Remainder section */

/* P2 */
while (true) {
wants2 = true;
while (wants1==true);
/* Critical Section */
Wants2=false;
}
/* Remainder section */

Here, wants1 and wants2 are shared variables, which are initialized to
false. Which one of the following statements is TRUE about the above
construct?
(A) It does not ensure mutual exclusion.
(B) It does not ensure bounded waiting.
(C) It requires that processes enter the critical section in strict
alternation.
(D) It does not prevent deadlocks, but ensures mutual exclusion.

I think B,C are true. It also prevents deadlock so D is also true, not sure
though. Am I right?

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to