Synchronization in Distributed Programs

A technique for solving synchronization problems in distributed programs is described. Use of this technique in environments in which processes may fail is discussed. The technique can be used to solve synchronization problems directly, to implement new synchronization mechanisms (which are presumably well suited for use in distributed programs), and to construct distributed versions of existing synchronization mechanisms. Use of the technique is illustrated with implementations of distributed semaphores and a conditional message-passing facility.

[1]  J. D. Ichbiah,et al.  Preliminary Ada reference manual , 1979, SIGP.

[2]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[3]  David P. Reed,et al.  Implementing atomic actions on decentralized data , 1983, TOCS.

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

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

[6]  Clarence A. Ellis,et al.  Consistency and correctness of duplicate database systems , 1977, SOSP '77.

[7]  Gérard Le Lann,et al.  Algorithms for Distributed Data-Sharing Systems Which Use Tickets , 1978, Berkeley Workshop.

[8]  Leslie Lamport,et al.  The Byzantine Generals Problem , 1982, TOPL.

[9]  Leslie Lamport,et al.  The Implementation of Reliable Distributed Multiprocess Systems , 1978, Comput. Networks.

[10]  Abraham Silberschatz,et al.  Communication and Synchronization in Distributed Systems , 1979, IEEE Transactions on Software Engineering.

[11]  Robert Metcalfe,et al.  Ethernet: distributed packet switching for local computer networks , 1988, CACM.

[12]  David P. Reed Implementing atomic actions on decentralized data (Extended Abstract) , 1979, SOSP '79.

[13]  Fred B. Schneider,et al.  Ensuring Consistency in a Distributed Database System by Use of Distributed Semaphores , 1979, International Symposium on Distributed Data Bases.

[14]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[15]  Gregory R. Andrews,et al.  On-the-fly deadlock prevention , 1982, PODC '82.

[16]  Ashok K. Agrawala,et al.  An optimal algorithm for mutual exclusion in computer networks , 1981, CACM.

[17]  David P. Reed,et al.  Synchronization with eventcounts and sequencers , 1979, CACM.