## Discussion Forum

Que. | 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: while (1) { W: print '0'; print '0'; X: } Process Q: while (1) { Y: print '1'; print '1'; 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 |

Answer:P(S) at W, V(S) at X, P(S) at Y, V(S) at Z, S initially 1 |