GATE CS 2018 Set 1 — Question 50
Go beyond PYQs with Success TrackerAI-powered personalised practice and doubt support. Unlimited practice on eligible plans; AI usage limits apply.MCQ+2 / -0.67EasySemaphoresProcess SynchronizationOperating SystemProducer-Consumer
Operating System → Process Synchronization → Producer-Consumer
Last updated
Question
Consider the following solution to the producer-consumer synchronization problem. The shared buffer size is . Three semaphores
Which one of the following assignments to P, Q, R and S will yield the correct solution?
empty, full and mutex are defined with respective initial values of 0, and 1. Semaphore empty denotes the number of available slots in the buffer, for the consumer to read from. Semaphore full denotes the number of available slots in the buffer, for the producer to write to. The placeholder variables, denoted by P, Q, R, and S, in the code below can be assigned either empty or full. The valid semaphore operations are: wait() and signal().| Producer: | Consumer: |
|---|---|
do{ | do{ |
wait(P); | wait(R); |
wait(mutex); | wait(mutex); |
//Add item to buffer | //Consume item from buffer |
signal(mutex); | signal(mutex); |
signal(Q); | signal(S); |
}while(1); | }while(1); |
Correct answer
(C) P: full, Q: empty, R: empty, S: full
Solution
In the producer-consumer problem:
1.The Producer must wait for an empty slot to write. According to the problem,
full denotes available slots for the producer (initial value ). Thus, P must be full.2.After adding an item, the Producer signals that a slot is now ready for the consumer. According to the problem,
empty denotes slots for the consumer (initial value 0). Thus, Q must be empty.3.The Consumer must wait for an item to be available. Thus, R must be
empty.4.After consuming an item, the Consumer signals that a slot is now available for the producer. Thus, S must be
Therefore, the correct assignment is P: full.full, Q: empty, R: empty, S: full.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…