GATE CS 2026 Set 2 — Question 51
Go beyond PYQs with Success TrackerAI-powered personalised practice and doubt support. Unlimited practice on eligible plans; AI usage limits apply.MSQ+2 / -0HardSemaphoresProcess SynchronizationOperating System
Operating System → Process Synchronization → Semaphores
Last updated
Question
Consider three processes P1, P2, and P3 running identical code, as shown in the pseudocode below. A and B are two binary semaphores initialized to 1 and 0, respectively. X is a shared variable initialized to 0. Each line in the pseudocode is executed atomically.Pseudocode of P1, P2, and P3
Assume that any of the three processes can start to execute first and context switching can happen between these processes at any arbitrary time and in any arbitrary order.Which of the following patterns is/are possible to be generated as an outcome of the execution of these three processes?
Wait(A);
Print(*);
X = X+1;
If (X == 2)
{
Print($);
Signal(B);
}
Signal(A);
Wait(B);
Print(#);
Signal(B);
Assume that any of the three processes can start to execute first and context switching can happen between these processes at any arbitrary time and in any arbitrary order.Which of the following patterns is/are possible to be generated as an outcome of the execution of these three processes?
Correct answer
(A) $; (B) $; (C) $
Solution
The code has two sections. The first section is protected by semaphore A (mutex). The second section is controlled by semaphore B.
1.First Section (Wait(A) ... Signal(A)):
- Processes enter sequentially.
- 1st process: Prints
*, sets X=1. - 2nd process: Prints
*, sets X=2, entersif, prints$, signals B. - 3rd process: Prints
*, sets X=3. - Because of
Wait(A), the 3rd process cannot print*until the 2nd process releases A. The 2nd process prints$before releasing A. Thus, the output must contain*(from 1st) and*$(from 2nd) before the 3rd*can appear? No, the 3rd*appears after 2nd releases A. But$is printed inside the critical section of the 2nd process. So*and$from the 2nd process are atomic relative to other*s. The sequence of*and$must be*(1st),*$(2nd),*(3rd) in terms of when they are enabled. Specifically,$must appear after the second*and before the 2nd process releases A. - This implies the prefix
**$is mandatory. Option (D)***$is impossible because the 3rd*cannot occur before the 2nd process releases A, and the 2nd process prints$before releasing A.
- This is enabled by
Signal(B)in the 2nd process. - Once B becomes 1, processes can print
#sequentially. - The printing of
#can be interleaved with the 3rd process's execution of the first section (printing the 3rd*), as these are independent once A is released by the 2nd process.
- (A)
**$*###: 2nd proc finishes, 3rd proc enters and prints*, then all print#. Possible. - (B)
**$#*##: 2nd proc finishes, one proc prints#, then 3rd proc prints*, then others print#. Possible. - (C)
**$##*#: 2nd proc finishes, two procs print#, then 3rd proc prints*, then last#. Possible. - (D)
***$###: Impossible as explained above.
Continue learning with Success Tracker
A step still unclear? Work through it with support
Use Success Tracker to ask about the reasoning, then try another GATE CS question to check your understanding.
AI-powered practice· Unlimited practice on eligible plans
- PYQs with solutions
- Attempt available previous-year questions, then compare your reasoning with the worked solution. Coverage varies by stream.
- Practice that adapts
- Choose a topic, work on weaker areas and bookmark questions to revisit. Your attempts feed your progress tracking.
- AI doubt support
- Ask follow-up questions about a step or concept while practising, instead of stopping at the final answer.
Unlimited practice is available on eligible plans. Free practice and AI usage have limits; check the current plan allowances before choosing.
This page stays readable without an account. AI responses can be wrong; check them against the solution and source material.
More questions on Process Synchronization
2026 Set 2 Q23Which one of the following CPU scheduling algorithms cannot be preemptive?2026 Set 1 Q29With respect to deadlocks in an operating system, which of the following statements is/are FALSE?2026 Set 1 Q31In the context of relational database normalization, which of the following statements is/are true?2026 Set 1 Q35Consider a system consisting of instances of a resource , being shared by 5 processes.…2026 Set 2 Q53To keep track of free blocks in a file system, one of the two approaches is generally used – using…