A Distributed Protocol for Channel-Based Communication with Choice

Recent attempts at incorporating concurrency into functional languages have identified synchronous communication via shared channels as a promising primitive. An additional useful feature found in many proposals is a nondeterministic choice operator. Similar in nature to the CSP alternative command, this operator allows different possible actions to be guarded by sends or receives. Choice is difficult to implement in a distributed environment because it requires offering many potential communications but closing only one. In this paper we present the first distributed, deadlock-free algorithm for choice

[1]  John H. Reppy An Operational Semantics of First-class Synchronous Operations , 1991 .

[2]  Arthur J. Bernstein,et al.  Output Guards and Nondeterminism in “Communicating Sequential Processes” , 1980, TOPL.

[3]  S. Ramesh,et al.  A New and Efficient Implementation of Multiprocess Synchronization , 1987, PARLE.

[4]  Andrew W. Appel,et al.  Standard ML of New Jersey , 1991, PLILP.

[5]  Robin Milner,et al.  A semantics for ML concurrency primitives , 1992, POPL '92.

[6]  Abraham Silberschatz,et al.  An Effective Implementation for the Generalized Input-Output Construct of CSP , 1983, TOPL.

[7]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[8]  Myunghwan Kim,et al.  A Distributed Synchronization Scheme for Fair Multi-Process Handshakes , 1990, Inf. Process. Lett..

[9]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[10]  John H. Reppy,et al.  CML: A Higher-Order Concurrent Language , 1991, PLDI.

[11]  William J. Bolosky,et al.  Mach: A New Kernel Foundation for UNIX Development , 1986, USENIX Summer.

[12]  John H. Reppy Synchronous operations as first-class values , 1988, PLDI '88.

[13]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[14]  Richard Bornat,et al.  A Protocol for Generalized occam , 1986, Softw. Pract. Exp..

[15]  Luca Cardelli. Amber Combinators and Functional Programming Languages , 1985, Lecture Notes in Computer Science.

[16]  D. Kumar An implementation of N-party synchronization using tokens , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[17]  Robin Milner,et al.  Definition of standard ML , 1990 .

[18]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[19]  Rajive L. Bagrodia A Distributed Algorithm to Implement the Generalized Alternative Command of CSP , 1986, ICDCS.