GATE CS 2023 Set 1 — Question 38
Go beyond PYQs with Success TrackerAI-powered personalised practice and doubt support. Unlimited practice on eligible plans; AI usage limits apply.MCQ+2 / -0.67HardSemaphoresProcess SynchronizationOperating System
Operating System → Process Synchronization → Semaphores
Last updated
Question
Consider the two functions
There are 5 threads each invoking
incr and decr shown below.incr(){
wait(s);
X = X+1;
signal(s);
}
decr(){
wait(s);
X = X-1;
signal(s);
}
incr once, and 3 threads each invoking decr once, on the same shared variable . The initial value of is 10.Suppose there are two implementations of the semaphore , as follows:I-1: is a binary semaphore initialized to 1.I-2: is a counting semaphore initialized to 2.Let , be the values of at the end of execution of all the threads with implementations I-1, I-2, respectively.Which one of the following choices corresponds to the minimum possible values of , , respectively?Correct answer
(C) 12, 7
Solution
I-1 (binary semaphore initialised to 1). At most one thread is inside the critical section at any time, so every update of is atomic. All 5 increments and 3 decrements take effect:Since every schedule gives 12, the minimum possible is 12.I-2 (counting semaphore initialised to 2). Two threads can be inside the critical section together.
X = X+1 / X = X-1 is a read followed by a write, so a thread can overwrite the update of the other thread that is inside with it (a lost update).To make the final value as small as possible, we want the increments to be lost:1.A
decr thread enters, reads and is preempted (it holds one permit).2.Using the second permit, the five
incr threads run one after another to completion: .3. resumes and writes , wiping out all five increments. .
4.The remaining two
It cannot go lower: every decrement lowers by at most 1 relative to the value it read, and there are only 3 decrements, so . Hence the minimum .decr threads run normally: .- (A) 15, 7: is always 12, never 15.
- (B) 7, 7: cannot be 7 under mutual exclusion.
- (C) 12, 7: correct.
- (D) 12, 8: 8 is not the minimum; 7 is reachable.
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…