GATE CS 2014 Set 2 — Question 41
Go beyond PYQs with Success TrackerAI-powered personalised practice and doubt support. Unlimited practice on eligible plans; AI usage limits apply.MCQ+2 / -0.67MediumSemaphoresProcess SynchronizationOperating SystemProducer-Consumer
Operating System → Process Synchronization → Producer-Consumer
Last updated
Question
Consider the procedure below for the Producer-Consumer problem which uses semaphores:Which one of the following is TRUE?
semaphore n = 0;
semaphore s = 1;
void producer()
{
while(true)
{
produce();
semWait(s);
addToBuffer();
semSignal(s);
semSignal(n);
}
}
void consumer()
{
while(true)
{
semWait(s);
semWait(n);
removeFromBuffer();
semSignal(s);
consume();
}
}
Correct answer
(C) Deadlock occurs if the consumer succeeds in acquiring semaphore s when the buffer is empty.
Solution
The code shows a classic deadlock scenario in the Producer-Consumer problem due to incorrect ordering of semaphore operations in the consumer.
1.Initialization:
n = 0 (items in buffer), s = 1 (mutex for buffer access).2.Scenario: Suppose the buffer is empty (
n = 0) and the consumer is scheduled first.3.Consumer Execution:
- Executes
semWait(s):sbecomes 0. Consumer acquires the lock on the buffer. - Executes
semWait(n): Sincenis 0, the consumer blocks (waits) for an item to be produced.
- The consumer is blocked inside the critical section (holding
s) waiting forn. - The producer needs to run to increment
n(viasemSignal(n)). - However, the producer first executes
semWait(s)to acquire the buffer lock. - Since
sis 0 (held by the consumer), the producer blocks. - Both processes are waiting for each other: Consumer waits for Producer to signal
n, Producer waits for Consumer to signals.
s when the buffer is empty.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…