Abstract
While the previous chapter was devoted to communication abstractions on message ordering, this chapter is on synchronous communication (also called logically instantaneous communication, or rendezvous, or interaction). This abstraction adds synchronization to communication. More precisely, it requires that, for a message to be sent by a process, the receiver has to be ready to receive it. From an external observer point view, the message transmission looks instantaneous: The sending and the reception of a message appear as a single event (and the sense of the communication could have been in the other direction). From an operational point of view, we have the following: For each pair of processes, the first process that wants to communicate—be it the sender or the receiver—has to wait until the other process is ready to communicate.
This chapter first defines synchronous communication and introduces a characterization based on a specific message pattern called a crown. It then presents several implementations of this communication abstraction, each suited to a specific context. It also describes implementations for real-time rendezvous in the context of synchronous message-passing systems. In this case, each process is required to associate a deadline with each of its rendezvous.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
R. Bagrodia, Process synchronization: design and performance evaluation for distributed algorithms. IEEE Trans. Softw. Eng. SE15(9), 1053–1065 (1989)
R. Bagrodia, Synchronization of asynchronous processes in CSP. ACM Trans. Program. Lang. Syst. 11(4), 585–597 (1989)
A.J. Bernstein, Output guards and non-determinism in “communicating sequential processes”. ACM Trans. Program. Lang. Syst. 2(2), 234–238 (1980)
A.D. Birell, B.J. Nelson, Implementing remote procedure calls. ACM Trans. Comput. Syst. 3, 39–59 (1984)
L. Bougé, Repeated snapshots in distributed systems with synchronous communications and their implementation in CSP. Theor. Comput. Sci. 49, 145–169 (1987)
L. Bougé, N. Francez, A compositional approach to super-imposition, in Proc. 15th Annual ACM Symposium on Principles of Programming Languages (POPL’88) (ACM Press, New York, 1988), pp. 240–249
P. Brinch Hansen, Distributed processes: a concurrent programming concept. Commun. ACM 21(11), 934–941 (1978)
G.N. Buckley, A. Silberschatz, An effective implementation for the generalized input-output construct of CSP. ACM Trans. Program. Lang. Syst. 5(2), 223–235 (1983)
K.M. Chandy, J. Misra, Parallel Program Design (Addison-Wesley, Reading, 1988), 516 pages
A. Charlesworth, The multiway rendezvous. ACM Trans. Program. Lang. Syst. 9, 350–366 (1987)
B. Charron-Bost, G. Tel, F. Mattern, Synchronous, asynchronous, and causally ordered communications. Distrib. Comput. 9(4), 173–191 (1996)
M. Choy, A.K. Singh, Efficient implementation of synchronous communication over asynchronous networks. J. Parallel Distrib. Comput. 26, 166–180 (1995)
E.W. Dijkstra, Guarded commands, nondeterminacy, and formal derivation of programs. Commun. ACM 18(8), 453–457 (1979)
E. Evangelist, N. Francez, S. Katz, Multiparty interactions for interprocess communication and synchronization. IEEE Trans. Softw. Eng. 15(11), 1417–1426 (1989)
N. Francez, B. Halpern, G. Taubenfeld, Script: a communication abstraction mechanism. Sci. Comput. Program. 6(1), 35–88 (1986)
N. Francez, S. Yemini, Symmetric intertask communication. ACM Trans. Program. Lang. Syst. 7(4), 622–636 (1985)
R. Fujimoto, Parallel discrete event simulation. Commun. ACM 33(10), 31–53 (1990)
V.K. Garg, Principles of Distributed Systems (Kluwer Academic, Dordrecht, 1996), 274 pages
C.A.R. Hoare, Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978)
J. Jefferson, Virtual time. ACM Trans. Program. Lang. Syst. 7(3), 404–425 (1985)
I. Lee, S.B. Davidson, Adding time to synchronous processes. IEEE Trans. Comput. C-36(8), 941–948 (1987)
J. Misra, Distributed discrete event simulation. ACM Comput. Surv. 18(1), 39–65 (1986)
A. Mostéfaoui, M. Raynal, P. Veríssimo, Logically instantaneous communication on top of distributed memory parallel machines, in Proc. 5th Int’l Conference on Parallel Computing Technologies (PACT’99). LNCS, vol. 1662 (Springer, Berlin, 1999), pp. 258–270
V.V. Murty, V.K. Garg, An algorithm to guarantee synchronous ordering of messages, in Proc. 2nd Int’l IEEE Symposium on Autonomous Decentralized Systems (IEEE Press, New York, 1995), pp. 208–214
V.V. Murty, V.K. Garg, Characterization of message ordering specifications and protocols, in Proc. 7th Int’l Conference on Distributed Computer Systems (ICDCS’97) (IEEE Press, New York, 1997), pp. 492–499
R. Righter, J.C. Walrand, Distributed simulation of discrete event systems. Proc. IEEE 77(1), 99–113 (1989)
A. Silberschatz, Synchronization and communication in distributed systems. IEEE Trans. Softw. Eng. SE5(6), 542–546 (1979)
J.L.A. van de Snepscheut, Synchronous communication between asynchronous components. Inf. Process. Lett. 13(3), 127–130 (1981)
T. Soneoka, T. Ibaraki, Logically instantaneous message passing in asynchronous distributed systems. IEEE Trans. Comput. 43(5), 513–527 (1994)
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Raynal, M. (2013). Rendezvous (Synchronous) Communication. In: Distributed Algorithms for Message-Passing Systems. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38123-2_13
Download citation
DOI: https://doi.org/10.1007/978-3-642-38123-2_13
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-38122-5
Online ISBN: 978-3-642-38123-2
eBook Packages: Computer ScienceComputer Science (R0)