The Congenial Talking Philosophers



picture of talking philosophers

The problem concerns a set of N philosophers P1 , P2 , ..., PN which spend their time thinking alone and talking in a forum. Initially, all philosophers are thinking. From time to time, when a philosopher is tired of thinking, it wishes to attend a forum of its choice. Given that there is only one meeting room, a philosopher attempting to enter the meeting room to attend a forum can succeed only if the meeting room is empty (and in this case the philosopher starts the forum), or some philosopher interested in the forum is already in the meeting room (and in this case the philosopher joins this ongoing forum). We assume that when a philosopher has attended a forum, it spends an unpredictable but finite amount of time in the forum. After a philosopher leaves a forum (that is, exits the meeting room), it returns to thinking.

The problem is to design an algorithm for the philosophers satisfying the following requirement:


The problem has been proposed by Joung (1998a), to model the design issues where resources can be shared by processes of the same group but the sharing cannot across the group; and solutions for the problem for various execution models have been proposed. For shared-memory models, please refer to Joung (1998a),; for complete message-passing networks, please refer to Joung (1998b); and for ring networks, please refer to Wu and Joung (1998).

For java applets illustrating some concepts of the algorithms presented in the above papers see the following workbenches:

Reference

Related Sites:

Workbench for Ricart and Agrawala's Algorithm

Last updated 2/26/2001.