# GATE | GATE CS 2008 | Question 63

• Difficulty Level : Expert
• Last Updated : 02 Dec, 2021

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  < 0) then wait;
V(s) : s = s + 1;
if (s <= 0) then wakeup a process waiting on 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:

Attention reader! Don’t stop learning now.  Practice GATE exam well before the actual exam with the subject-wise and overall quizzes available in GATE Test Series Course.

Learn all GATE CS concepts with Free Live Classes on our youtube channel.

```P(s) : Pb(Xb);
s = s - 1;
if (s < 0) {
Vb(Xb) ;
Pb(Yb) ;
}
else Vb(Xb);

V(s) : Pb(Xb) ;
s = s + 1;
if (s <= 0) Vb(Yb) ;
Vb(Xb) ;```

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

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 <0) and will result into calling Vb(Xb) and Pb(Yb) operations. Vb(Xb) will result into Xb as 1 and Pb(Yb) will result into decrementing the value of Yb.
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/

This solution is contributed by Nitika Bansal

My Personal Notes arrow_drop_up