The Producer / Consumer Problem
Also called the bounded-buffer problem.
A producer produces data that is consumed by a consumer. (e.g. spooler and printer).
A buffer holds the produced data which is not yet consumed.
There exist several producers and consumers
Initially, we assume the buffer is unbounded.