The Producer-Consumer problem is a classical problem in which we have a bounded buffer (fixed memory), the producer fills in the memory and the consumer empties the memory. The producer can not produce items more than the memory can hold, while the consumer can not consume while the buffer is empty.
The solution to this problem can be found with Semaphores, Monitors or Event Counters.
Answer is (D).