a
famous problem in the field of concurrency (a
sub-field in computer science, for the uninitiated) that discusses an approach to allocate a fixed
number of resources among several consumers. here is the actual dining philosophers problem (DPP)...
"A certain
number of philosophers spend their lives alternating between thinking and eating. They are seated around a circular table. There is a fork placed between each pair of neighboring philosophers. Each philosopher has access to the forks at her left and right. In order to eat, a philosopher must be in possession of both forks. A philosopher
may only pick up
one fork at a time. Each philosopher attempts to pick up the
left fork first and then the right fork. When done eating, a philosopher puts both forks back down on the table and begins thinking. Since the philosophers are sharing forks, it is not possible for all of them to be eating at the same time."