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
1.Implementation I-1 (Binary Semaphore init 1): This acts as a mutex, ensuring mutual exclusion. All 5 increments and 3 decrements are executed atomically. The final value is .
2.Implementation I-2 (Counting Semaphore init 2): Up to two threads can enter the critical section simultaneously, leading to race conditions. To minimize the final value :
- Let thread enter, read , and be preempted.
- Let thread enter, read , and be preempted.
- All other 4 increment threads ( to ) run to completion: becomes .
- resumes, increments its local 10 to 11, and writes .
- Now . The remaining 2 decrement threads () run to completion: becomes .
- resumes, decrements its local 10 to 9, and writes .
- Thus, the minimum value for is 7.
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…