The drinking philosophers problem
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
Hierarchical correctness proofs for distributed algorithms
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
Efficient fault tolerant algorithms for resource allocation in distributed systems
STOC '92 Proceedings of the twenty-fourth annual ACM symposium on Theory of computing
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An Efficient Solution to the Drinking Philosophers Problem and Its Extension
Proceedings of the 3rd International Workshop on Distributed Algorithms
Economical solutions for the critical section problem in a distributed system (Extended Abstract)
STOC '77 Proceedings of the ninth annual ACM symposium on Theory of computing
Ranking in distributed systems
Ranking in distributed systems
A distributed algorithm for dynamic channel allocation
Mobile Networks and Applications - Analysis and Design of Multi-Service Wireless Networks
On reducing the complexity of matrix clocks
Parallel Computing
Synthesis of fault-tolerant concurrent programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A modular algorithm for resource allocation
Distributed Computing
A self-stabilizing distributed algorithm for resolving conflicts
OTM'07 Proceedings of the 2007 OTM Confederated international conference on On the move to meaningful internet systems - Volume Part II
A novel distributed scheduling algorithm for resource sharing under near-heavy load
OPODIS'04 Proceedings of the 8th international conference on Principles of Distributed Systems
Hi-index | 0.00 |
A variant of the drinking philosophers algorithm of Chandy and Misra is described and proved correct in a modular way. The algorithm of Chandy and Misra is based on a particular dining philosophers algorithm and relies on certain properties of its implementation. The drinking philosophers algorithm presented in this paper is able to use an arbitrary dining philosophers algorithm as a subroutine; nothing about the implementation needs to be known, only that it solves the dining philosophers problem. An important advantage of this modularity is that by substituting a more time-efficient dining philosophers algorithm than the one used by Chandy and Misra, a drinking philosophers algorithm with O(1) worst-case waiting time is obtained, whereas the drinking philosophers algorithm of Chandy and Misra has O(n) worst-case waiting time (for n philosophers). Careful definitions are given to distinguish the drinking and dining philosophers problems and to specify varying degrees of concurrency.