[comp.parallel] SUMMARY : references on philosophers problem

pandolfi@lifia.imag.fr (Xavier Pandolfi ) (11/13/90)

Hello,

Several weeks ago, I posted the following enquiry :

        I am looking for articles/references concerning lower bounds 
        for the number of messages the participating processes
        need to send in the worst case in order to respect :
          1. the drinking philosophers problem
          2. the dining philosophers problem
          3. the mutual exclusion problem

        when the solution under consideration is :
          a. standard
          b. without deadlock
          c. starvation free

        Please send informations ...

I received many messages but no answer to my questions :

Andy Glew (aglew@dwarfs.crhc.uiuc.edu) sent me references on
mutual exclusion algorithms with their upper bounds but no 
reference on lower bounds for this problem. Anyway thank you Andy !

I also received messages from Ciaran McHale (cjmchale@cs.tcd.ie), 
                              Arup Acharya (acharya@paul.rutgers.edu),
                              Bill Williston (freewill@nstar.UUCP),
                              Paulo Rosado (pr@fct.unl.pt).
Thanks to you all !

My own bibliography research gives the following result :

"How processes learn" K.M. Chandy and J. Misra, 
Distributed Computing 1 (1986)
considers the standard mutual exclusion problem and proves that at 
least one message must be exchanged by neighboring philosophers 
between their drinking sessions.


Many people asked me a definition of the "drinking philosophers problem".
So here it is :

The drinking philosophers problem is a paradigm for conflict resolution
in distributed systems. In this problem there is an arbitrary graph with
a bottle on each edge and a philosopher at each node. A philosopher is 
in one of three states : (1) "tranquil", (2) "thirsty", or (3) "drinking".
A philosopher may be in the tranquil state for an arbitrary period of time.
A tranquil philosopher may become thirsty. 
A thirsty philosopher needs a nonempty set of bottles that he wishes to 
drink from. A philosopher can drink only from bottles associated with 
his incident edges. A thirsty philosopher remains thirsty until he gets
all bottles he needs to drink. 
On holding all needed bottles, a thirsty philosopher starts drinking. He
may need different sets of bottles for different drinking sessions. On 
entering the drinking state a philosopher remains in that state for a
finite period, after which he becomes tranquil.
Two philosophers are neighbors if and only if there is an edge between
them (they share a least one bottle).
The problem is to design a program that guarantees that neighbors do
not drink at the same time from a same bottle.

The dining philosophers problem is the particular case of the drinking
philosophers problem where a thirsty (hungry) philosopher always needs
to hold all the bottles (forks) associated with his incident edges in 
order to start drinking (eating).

The mutual exclusion problem is the particular case of the dining
philosophers problem where the neighboring relation is total (the graph
is complete).

The system of philosophers is said to be deadlocked when no philosopher
is drinking and no thirsty philosopher can ever start drinking.

A solution is said to be "starvation" free if every thirsty philosopher
will eventually get to drink.

I think the original paper on this problem is :
"The drinking philosophers problem"
K.M. Chandy and J. Misra
ACM TOPLAS Vol 6(4), Oct 84, pp 632-646
-- 
-- Xavier Pandolfi
   LIFIA - IMAG				Tel : 76-57-46-58
   46, Av Felix Viallet			Mail : pandolfi@lifia.imag.fr
   38031 Grenoble Cedex, France