GATE CS 2022 Set 1 — Question 19
Go beyond PYQs with Success TrackerAI-powered personalised practice and doubt support. Unlimited practice on eligible plans; AI usage limits apply.MCQ+1 / -0.33MediumSemaphoresProcess SynchronizationOperating System
Operating System → Process Synchronization → Semaphores
Last updated
Question
Consider the following threads, , and executing on a single processor, synchronized using three binary semaphore variables, , and , operated upon using standard
Which initialization of the semaphores would print the sequence BCABCABCA....?
wait() and signal(). The threads can be context switched in any order and at any time.while(true){ | while(true){ | while(true){ |
wait(S3); | wait(S1); | wait(S2); |
print("C"); | print("B"); | print("A"); |
signal(S2); } | signal(S3); } | signal(S1); } |
Correct answer
(C) S₁ = 1; S₂ = 0; S₃ = 0
Solution
To print the sequence BCABCABCA..., the order of execution must be
1.The first character is 'B', printed by . executes
wait(S1). For to proceed first, must be initialized to 1.2.After printing 'B', executes
signal(S3). This should enable to print 'C'.3.The second character is 'C', printed by . executes
wait(S3). Since signals , can proceed if was initially 0.4.After printing 'C', executes
signal(S2). This should enable to print 'A'.5.The third character is 'A', printed by . executes
wait(S2). Since signals , can proceed if was initially 0.6.After printing 'A', executes
Thus, the initial values must be .signal(S1), which allows to start the next cycle.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 Q51Consider three processes P1, P2, and P3 running identical code, as shown in the pseudocode below. A…