3/10/25, 1:51 AM Semaphore in OS | Practice Problems | Gate Vidyalay
Semaphore in OS | Practice Problems
Operating System
Spread the love
Semaphore in OS-
Before you go through this article, make sure that you have gone through the previous article on
Semaphores in OS.
We have discussed-
A semaphore is a simple integer variable used to provide synchronization among the processes.
There are mainly two types of semaphores-
In this article, we will discuss practice problems based on counting semaphores.
PRACTICE PROBLEMS BASED ON COUNTING SEMAPHORES IN
OS-
Problem-01:
https://www.gatevidyalay.com/semaphore-in-os-practice-problems/ 1/9
3/10/25, 1:51 AM Semaphore in OS | Practice Problems | Gate Vidyalay
A counting semaphore S is initialized to 10. Then, 6 P operations and 4 V operations are performed on
S. What is the final value of S?
Solution-
We know-
P operation also called as wait operation decrements the value of semaphore variable by 1.
V operation also called as signal operation increments the value of semaphore variable by 1.
Thus,
Final value of semaphore variable S
= 10 – (6 x 1) + (4 x 1)
= 10 – 6 + 4
=8
Problem-02:
A counting semaphore S is initialized to 7. Then, 20 P operations and 15 V operations are performed
on S. What is the final value of S?
Solution-
We know-
P operation also called as wait operation decrements the value of semaphore variable by 1.
V operation also called as signal operation increments the value of semaphore variable by 1.
Thus,
Final value of semaphore variable S
https://www.gatevidyalay.com/semaphore-in-os-practice-problems/ 2/9
3/10/25, 1:51 AM Semaphore in OS | Practice Problems | Gate Vidyalay
= 7 – (20 x 1) + (15 x 1)
= 7 – 20 + 15
=2
Problem-03:
A shared variable x, initialized to zero, is operated on by four concurrent processes W, X, Y, Z as
follows. Each of the processes W and X reads x from memory, increments by one, stores it to memory
and then terminates. Each of the processes Y and Z reads x from memory, decrements by two, stores
it to memory, and then terminates. Each process before reading x invokes the P operation (i.e. wait) on
a counting semaphore S and invokes the V operation (i.e. signal) on the semaphore S after storing x to
memory. Semaphore S is initialized to two. What is the maximum possible value of x after all
processes complete execution?
1. -2
2. -1
3. 1
4. 2
Solution-
The given question may be pictorially represented as-
https://www.gatevidyalay.com/semaphore-in-os-practice-problems/ 3/9
3/10/25, 1:51 AM Semaphore in OS | Practice Problems | Gate Vidyalay
Initially, counting semaphore S is initialized with value 2.
Now, We have been asked the maximum possible value of x after all the processes complete
execution.
Clearly,
Processes W and X increments the value of x.
Processes Y and Z decrements the value of x.
To obtain the maximum value of x, the processes must execute in such a way that-
Only the impact of the processes W and X remains on the value of x.
The impact of processes Y and Z gets lost on the value of x.
STRATEGY
First of all, make the process W read the value of x = 0.
Then, preempt the process W.
Now, schedule process Y and process Z to execute one by one.
After executing them, reschedule process W.
Now, when process W gets scheduled again, it starts with value x = 0 and increments this
value.
This is because before preemption it had read the value x = 0.
The updates from the processes Y and Z gets lost.
Later, execute process X which again increments the value of x.
Here, the lost update problem has been exploited.
This is achieved as-
Step-01:
https://www.gatevidyalay.com/semaphore-in-os-practice-problems/ 4/9
3/10/25, 1:51 AM Semaphore in OS | Practice Problems | Gate Vidyalay
Process W arrives.
It executes the wait(S) operation and the value of S decrements by 1. Now, S = 1.
It reads the value x = 0.
It gets preempted.
Step-02:
Process Y arrives.
It executes the wait(S) operation and the value of S decrements by 1. Now, S = 0.
It reads the value x = 0.
It decrements the value of x by 2. Now, x = 0 – 2 = -2.
It writes the value x = -2 in the memory.
It executes the signal(S) operation and the value of S increments by 1. Now, S = 1.
Now, execution of process Y is completed.
Step-03:
Process Z arrives.
It executes the wait(S) operation and the value of S decrements by 1. Now, S = 0.
It reads the value x = -2.
It decrements the value of x by 2. Now, x = – 2 – 2 = -4.
It writes the value x = -4 in the memory.
It executes the signal(S) operation and the value of S increments by 1. Now, S = 1.
Now, execution of process Z is completed.
Step-04:
Process W gets scheduled again.
It resumes its execution from where it left.
Before preemption it had already read the value x = 0.
https://www.gatevidyalay.com/semaphore-in-os-practice-problems/ 5/9
3/10/25, 1:51 AM Semaphore in OS | Practice Problems | Gate Vidyalay
Now, it increments the value of x by 1. Now, x = 0 + 1 = 1.
It writes the value x = 1 in the memory.
It executes the signal(S) operation and the value of S increments by 1. Now, S = 2.
Now, execution of process W is completed.
Step-05:
Process X arrives.
It executes the wait(S) operation and the value of S decrements by 1. Now, S = 1.
It reads the value x = 1.
It increments the value of x by 1. Now, x = 1 + 1 = 2.
It writes the value x = 2 in the memory.
It executes the signal(S) operation and the value of S increments by 1. Now, S = 2.
Now, execution of process X is completed.
Thus,
Final value of x = 2.
This is the maximum possible value of x that can be achieved after executing all the 4 processes.
Option (D) is correct.
Problem-04:
In problem-03, what is the minimum possible value of x after all processes complete execution?
1. -4
2. -2
3. 2
4. 4
Solution-
To obtain the minimum value of x, the processes must execute in such a way that-
https://www.gatevidyalay.com/semaphore-in-os-practice-problems/ 6/9
3/10/25, 1:51 AM Semaphore in OS | Practice Problems | Gate Vidyalay
Only the impact of the processes Y and Z remains on the value of x.
The impact of processes W and X gets lost on the value of x.
This can be achieved if processes execute in the following manner-
Step-01:
Process Y arrives.
It executes the wait(S) operation and the value of S decrements by 1. Now, S = 1.
It reads the value x = 0.
It gets preempted.
Step-02:
Process W arrives.
It executes the wait(S) operation and the value of S decrements by 1. Now, S = 0.
It reads the value x = 0.
It increments the value of x by 1. Now, x = 0 + 1 = 1.
It writes the value x = 1 in the memory.
It executes the signal(S) operation and the value of S increments by 1. Now, S = 1.
Now, execution of process W is completed.
Step-03:
Process X arrives.
It executes the wait(S) operation and the value of S decrements by 1. Now, S = 0.
It reads the value x = 1.
It increments the value of x by 1. Now, x = 1 + 1 = 2.
It writes the value x = 2 in the memory.
It executes the signal(S) operation and the value of S increments by 1. Now, S = 1.
Now, execution of process X is completed.
https://www.gatevidyalay.com/semaphore-in-os-practice-problems/ 7/9
3/10/25, 1:51 AM Semaphore in OS | Practice Problems | Gate Vidyalay
Step-04:
Process Y gets scheduled again.
It resumes its execution from where it left.
Before preemption it had already read the value x = 0.
Now, it decrements the value of x by 2. Now, x = 0 – 2 = -2.
It writes the value x = -2 in the memory.
It executes the signal(S) operation and the value of S increments by 1. Now, S = 2.
Now, execution of process Y is completed.
Step-05:
Process Z arrives.
It executes the wait(S) operation and the value of S decrements by 1. Now, S = 1.
It reads the value x = -2.
It decrements the value of x by 2. Now, x = -2 – 2 = -4.
It writes the value x = -4 in the memory.
It executes the signal(S) operation and the value of S increments by 1. Now, S = 2.
Now, execution of process Z is completed.
Thus,
Final value of x = -4.
This is the minimum possible value of x that can be achieved after executing all the 4 processes.
Thus, Option (A) is correct.
To watch video solutions and practice other problems,
Watch this Video Lecture
Next Article- Binary Semaphores
https://www.gatevidyalay.com/semaphore-in-os-practice-problems/ 8/9
3/10/25, 1:51 AM Semaphore in OS | Practice Problems | Gate Vidyalay
Get more notes and other study material of Operating System.
Watch video lectures by visiting our YouTube channel LearnVidFun.
Summary
Article Name Semaphore in OS | Practice Problems
Description Practice Problems based on Semaphore in OS. In
operating system, there are two types of semaphores-
Counting Semaphore & Binary Semaphore also called as
mutex.
Author Akshay Singhal
Publisher Name Gate Vidyalay
Publisher Logo
Spread the love
https://www.gatevidyalay.com/semaphore-in-os-practice-problems/ 9/9