Three distributed algorithms for solving a generalized version of the dining philosophers problem are presented. The solutions are based on the concept of doorways, that is, code fragments that block subsequent conflicting processes once one process has completed execution of the doorway code. Two doorways of different types are combined in a manner that eliminates the problems associated with using either one individually. The three algorithms differ in their use of doorways and in their fault tolerance. In this context, the measure of fault tolerance is the failure locality, that is, the size of the neighborhood (in the conflict graph) that may be affected by the failure of a single process.
The three algorithms for the dining philosophers problem are used to obtain three corresponding algorithms for the committee coordination problem. These algorithms improve previous results, not only because of the improved base algorithms, but also because an improved reduction method is used in transforming the algorithms.
Within its field, the paper makes a contribution by improving on previous algorithms for these problems, in terms of response time, message complexity, and failure locality. The paper is also well organized and clearly written. To a distributed systems researcher, however, the paper is disappointing. The system model is reasonable, but the algorithms presented are for artificial problems and, in spite of a passing reference to synchronous communications in Ada, have no apparent application to resource allocation problems that arise in real systems.