DPP

from The Free On-line Dictionary of Computing (8 July 2008)
Dining Philosophers Problem
DPP

   <parallel> (DPP) A problem introduced by {Dijkstra} concerning
   resource allocation between processes.  The DPP is a model and
   universal method for testing and comparing theories on
   resource allocation.  Dijkstra hoped to use it to help create
   a layered {operating system}, by creating a machine which
   could be consider to be an entirely {deterministic}
   {automaton}.

   The problem consists of a finite set of processes which share
   a finite set of resources, each of which can be used by only
   one process at a time, thus leading to potential {deadlock}.

   The DPP visualises this as a number of philosophers sitting
   round a dining table with a fork between each adjacent pair.
   Each philosopher may arbitrarily decide to use either the fork
   to his left or the one to his right but each fork may only be
   used by one philosopher at a time.

   Several potential solutions have been considered.

   Semaphores - a simple, but unfair solution where each
   resources is a {binary semaphore} and additional semaphores
   are used to avoid deadlock and/or {starvation}.

   Critical Regions - each processor is protected from
   interference while it exclusively uses a resource.

   Monitors - the process waits until all required resources are
   available then grabs all of them for use.

   The best solution allows the maximum parallelism for any
   number of processes (philosophers), by using an array to track
   the process' current state (i.e. hungry, eating, thinking).
   This solution maintains an array of semaphores, so hungry
   philosophers trying to acquire resources can block if the
   needed forks are busy.

   (1998-08-09)
    
from V.E.R.A. -- Virtual Entity of Relevant Acronyms (June 2006)
DPP
       Distributed Parallel Processing
       
    

[email protected]