The following program consists of 3 concurrent processes and 3 binary semaphores.The semaphores are initialized as S0 = 1, S1 = 0, S2 = 0.

How many times will process P0 print ‘0’?
(A) At least twice
(B) Exactly twice
(C) Exactly thrice
(D) Exactly once
Answer: (A)
Explanation: Initially only P0 can go inside the while loop as S0 = 1, S1 = 0, S2 = 0.
Minimum no. of time 0 printed is twice when execute in this order (p0 -> p1 -> p2 -> p0)
Maximum no. of time 0 printed is thrice when execute in this order (p0 -> p1 -> p0 -> p2 -> p0).
Watch GeeksforGeeks Video Explanation :
Quiz of this Question