Summary
This article studies characteristic properties of synchronous and asynchronous message communications in distributed systems. Based on the causality relation between events in computations with asynchronous communications, we characterize computations which are realizable with synchronous communications, which respect causal order, or where messages between two processes are always received in the order sent. It is shown that the corresponding computation classes form a strict hierarchy. Furthermore, an axiomatic definition of distributed computations with synchronous communications is given, and it is shown that several informal characterizations of such computations are equivalent when they are formalized appropriately. As an application, we use our results to show that the distributed termination detection algorithm by Dijkstra et al. is correct under a weaker synchrony assumption than originally stated.
Similar content being viewed by others
References
Ahamad M, Burns JE, Hutto PW, Neiger G: Causal memory. In: P Spirakis, S Toueg (eds) Proc 5th International Workshop on Distributed Algorithms. Springer, Berlin Heidelberg New York, LNCS 579: 9–30 (1991)
Ahuja M: Flush primitives for asynchronous distributed systems. Inf Proc Lett 34: 5–12 (1990)
Baeten JCM, Weijland WP: Process algebra. Vol 18 of Cambridge Tracts in Theoretical Computer Science, Cambridge University Press, 1990
Bal HE: Programming distributed systems. Prentice Hall, 1990
Birell AD, Nelson BJ: Implementing remote procedure calls. ACM Trans Comput Syst 3: 39–59 (1984)
Birman K, van Renesse R (eds): Reliable distributed computing with the Isis toolkit. IEEE Computer Society Press, 1994
Birman K, Joseph TA: Reliable communication in the presence of failures. ACM Trans Comput Syst 5: 47–76 (1987)
Birman K, Schiper A, Stephenson P: Lightweight causal and atomic group multicast. ACM Trans Comput Syst 9: 272–314 (1991)
Bouchitte V, Habib M: The calculation of invariants for ordered sets. In: I Rival (ed) Algorithms and order. Kluwer 1989, pp 231–279
Bougé L: Repeated snapshots in distributed systems with synchronous communications and their implementation in CSP. Theor Comput Sci 49: 145–169 (1987)
Brinch Hansen P: Distributed processes: a distributed programming concept. Commun ACM 21: 934–941 (1978)
Capek M: Towards a widening of the notion of causality. Diogenes 28: 63–90 (1959)
Capek M: Time-space rather than space-time. Diogenes 123: 30–49 (1983)
Chandy KM, Lamport L: Distributed snapshots: determining global states of distributed systems. ACM Trans Comput Syst 3: 63–75 (1985)
Charlesworth A: The multiway rendezvous. ACM Trans Program Lang Syst 9: 350–366 (1987)
Cypher R, Leu E: The semantics of blocking and non-blocking send and receive primitives. Proc 8th International Parallel Processing Symposium, pp 729–735, 1994
Davey BA, Priestley HA: Introduction to lattices and order. Cambridge University Press, 1990
Dijkstra EW: Shmuel Safra’s version of termination detection. Tech Rep EWD 998, Department of Computer Science, The University of Texas at Austin, 1987
Dijkstra EW, Feijen WHJ, van Gasteren, AJM: Derivation of a termination detection algorithm for distributed computations. Inf Proc Lett 16: 217–219 (1983)
Evangelist M, Francez N, Katz S: Multiparty interactions for interprocess communication and synchronization. IEEE Trans Softw Eng SE-15: 1417–1426 (1989)
Fidge C: Dynamic analysis of event orderings in message passing systems. PhD thesis, Department of Computer Science, The Australian National University, 1989
Fidge C: Logical time in distributed computing systems. Computer 24(8): 28–33 (1991)
Gribomont EP: From synchronous to asynchronous communication. In: C Rattray (ed) Specification and verification of concurrent systems. Springer, Berlin Heidelberg New York 1990, pp 368–383
Hempel R: The MPI standard for message passing. In: W Gentzsch, U Harms (eds) Heigh-performance computing and networking. Springer, Berlin Heidelberg New York, LNCS 797: 247–252 (1994)
Hoare CAR: Communicating sequential processes. Commun ACM 21: 666–677 (1978)
Katz S: A superimposition control construct for distributed systems. ACM Trans Program Lang Syst 15: 337–356 (1993)
Kopetz H: Sparse time versus dense time in distributed real-time systems. Proc 12th Int Conf Distr Computing Sys, pp 460–467, 1992
Lamport L: Time, clocks, and the orderings of events in a distributed system. Commun ACM 21: 558–565 (1978)
Martin AJ: An axiomatic definition of synchronization primitives. Acta Inf 16: 219–235 (1981)
Mattern F: Algorithms for distributed termination detection. Distrib Comput 2: 161–175 (1987)
Mattern F, Funfrocken S: A non-blocking lightweight implementation of causal order message delivery. In: KP Birman, F Mattern, A Schiper (eds) Theory and practice in distributed systems. Springer, Berlin Heidelberg New York, LNCS 938: 197–213 (1995)
Milner AJRG: A calculus of communicating systems. Springer, Berlin Heidelberg New York, LNCS 92 (1980)
Naimi M: Global stability detection in the asynchronous distributed computations. Proc IEEE Workshop on Future Trends of Distributed Computing Systems in the 90’s, Hong Kong, pp 87–92, 1988
Nelson BJ: Remote procedure call. Tech Rep CS-81-119, Carnegie-Melon University, 1981
Raynal M, Schiper A, Toueg S: The causal ordering abstraction and a simple way to implement it. Inf Proc Lett 39: 343–350 (1991)
Renesse R van: Causal controversy at Le Mont St. Michel. Oper Syst Rev 27(2): 44–53 (1993)
Schiper A, Eggli J, Sandoz A: A new algorithm to implement causal ordering. In: JC Bermond, M Raynal (eds) Distributed algorithms. Springer, Berlin Heidelberg New York, LNCS 392: 219–223 (1989)
Schlichting RD, Schneider FB: Using message passing for distributed programming: proof rules and disciplines. ACM Trans Program Lang Syst 6: 402–431 (1984)
Schmuck F: The use of efficient broadcast protocols in asynchronous distributed systems. Tech Rep 88–928, Cornell University, 1988
Seitz C: Multicomputers. In: CAR Hoare (ed) Developments in concurrency and communication. Addison-Wesley, 1990 pp 131–201
Shatz SM: Communication mechanisms for programming distributed systems. Computer 17: 21–28 (1984)
Soneoka T, Ibaraki T: Logically instantaneous Message passing in asynchronous distributed systems. IEEE Trans Comput 43: 513–527 (1994)
Stoller SD, Schneider FB: Verifying programs that use causally-ordered message-passing. Science of Computer Programming 24: 105–128 (1995)
Tanenbaum A: Distributed operating systems. Prentice-Hall, 1995
Tel G: Topics in distributed algorithms. Vol 1 of Cambridge International Series on Parallel Computing. Cambridge University Press, 1991
Topor RW: Termination detection for distributed computations. Inf Proc Lett 18: 33–36 (1984)
Author information
Authors and Affiliations
Additional information
The work of Gerard Tel was supported by the ESPRIT II Basic Research Actions Program of the EC under contract no. 3075 (project ALCOM)
Sometimes, however, a difference between the two notions “blocking” and “synchronous” (or “non-blocking” and “asynchronous”, resp.) is made in the literature. This is the case, for example, for the MPI message passing interface which is becoming a de facto standard for message-based communication [24]. Here, a blocking send primitive does not return until the message has been copied out of the sender’s buffer, whereas a non-blocking send can return immediately [16]. Since we abstract from implementation aspects such as message buffering, we are not concerned with this issue here.
Rights and permissions
About this article
Cite this article
Charron-Bost, B., Mattern, F. & Tel, G. Synchronous, asynchronous, and causally ordered communication. Distrib Comput 9, 173–191 (1996). https://doi.org/10.1007/s004460050018
Received:
Accepted:
Issue Date:
DOI: https://doi.org/10.1007/s004460050018