##### Gate2003_82

Suppose we want to synchronize two concurrent processes P and Q using binary semaphores S and T. The code for the processes P and Q is shown below.

Process P:                      Process Q:
while (1) {                     while (1) {
W:                              Y:
print ‘0’;                      print ‘1’;
print ‘0’;                      print ‘1’;
X:                              Z:
}                               }

Synchronization statements can be inserted only at points W, X, Y, and Z

Which of the following will ensure that the output string never contains a substring of the form 01n0 or 10n1 where n is odd?

(A) P(S) at W, V(S) at X, P(T) at Y, V(T) at Z, S and T initially 1
(B) P(S) at W, V(T) at X, P(T) at Y, V(S) at Z, S and T initially 1
(C) P(S) at W, V(S) at X, P(S) at Y, V(S) at Z, S initially 1
(D) V(S) at W, V(T) at X, P(S) at Y, P(T) at Z, S and T initially 1

Discuss

##### 1Comment
Kavita parekh @kavs
25 Nov 2017 07:57 am

https://youtu.be/6Gv3G0_Nkck

Solution to this que from 7:20