Open In App

GATE | GATE CS 2008 | Question 63

The P and V operations on counting semaphores, where s is a counting semaphore, are defined as follows:

P(s) : s =  s - 1;
  if (s  

Assume that Pb and Vb the wait and signal operations on binary semaphores are provided. Two binary semaphores Xb and Yb are used to implement the semaphore operations P(s) and V(s) as follows:



P(s) : Pb(Xb);
  s = s - 1;
  if (s 

The initial values of Xb and Yb are respectively

(A) 0 and 0
(B) 0 and 1



(C) 1 and 0

(D) 1 and 1

Answer: (C)
Explanation: Suppose Xb = 0, then because of P(s): Pb(Xb) operation, Xb will be -1 and process will get blocked as it will enter into waiting section. 

So, Xb will be one. 

Suppose s=2(means 2 process are accessing shared resource), taking Xb as 1,

first P(s): Pb(Xb) operation will make Xb as zero. s will be 1 and Then Vb(Xb) operation will be executed which will increase the count of Xb as one. Then same process will be repeated making Xb as one and s as zero.

Now suppose one more process comes, then Xb will be 0 but s will be -1 which will make this process go into loop (s case 1: if Yb has value as 0, it will be -1 and it will go into waiting and will be blocked.total 2 process will access shared resource (according to counting semaphore, max 3 process can access shared resource) and value of s is -1 means only 1 process will be waiting for resources and just now, one process got blocked. So it is still true.

case 2: if Yb has value as 1, it will be 0. Total 3 process will access shared resource (according to counting semaphore, max 2 process can access shared resource) and value of s is -1 means only 1 process will be waiting for resources and but there is no process waiting for resources.So it is false.

See Question 2 of https://www.geeksforgeeks.org/operating-systems-set-10/amp/ 

This solution is contributed by Nitika Bansal

Quiz of this Question

Article Tags :