Distributed Computing

, Volume 9, Issue 4, pp 173–191 | Cite as

Synchronous, asynchronous, and causally ordered communication

  • Bernadette Charron-Bost
  • Friedemann Mattern
  • Gerard Tel


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.

Key words

Distributed computation Message passing Synchronous communication Asynchronous communication Causal order Distributed termination detection Distributed system Causality relation Communication 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    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)Google Scholar
  2. 2.
    Ahuja M: Flush primitives for asynchronous distributed systems. Inf Proc Lett 34: 5–12 (1990)MATHCrossRefMathSciNetGoogle Scholar
  3. 3.
    Baeten JCM, Weijland WP: Process algebra. Vol 18 of Cambridge Tracts in Theoretical Computer Science, Cambridge University Press, 1990Google Scholar
  4. 4.
    Bal HE: Programming distributed systems. Prentice Hall, 1990Google Scholar
  5. 5.
    Birell AD, Nelson BJ: Implementing remote procedure calls. ACM Trans Comput Syst 3: 39–59 (1984)CrossRefGoogle Scholar
  6. 6.
    Birman K, van Renesse R (eds): Reliable distributed computing with the Isis toolkit. IEEE Computer Society Press, 1994Google Scholar
  7. 7.
    Birman K, Joseph TA: Reliable communication in the presence of failures. ACM Trans Comput Syst 5: 47–76 (1987)CrossRefGoogle Scholar
  8. 8.
    Birman K, Schiper A, Stephenson P: Lightweight causal and atomic group multicast. ACM Trans Comput Syst 9: 272–314 (1991)CrossRefGoogle Scholar
  9. 9.
    Bouchitte V, Habib M: The calculation of invariants for ordered sets. In: I Rival (ed) Algorithms and order. Kluwer 1989, pp 231–279Google Scholar
  10. 10.
    Bougé L: Repeated snapshots in distributed systems with synchronous communications and their implementation in CSP. Theor Comput Sci 49: 145–169 (1987)MATHCrossRefGoogle Scholar
  11. 11.
    Brinch Hansen P: Distributed processes: a distributed programming concept. Commun ACM 21: 934–941 (1978)MATHCrossRefGoogle Scholar
  12. 12.
    Capek M: Towards a widening of the notion of causality. Diogenes 28: 63–90 (1959)CrossRefGoogle Scholar
  13. 13.
    Capek M: Time-space rather than space-time. Diogenes 123: 30–49 (1983)CrossRefGoogle Scholar
  14. 14.
    Chandy KM, Lamport L: Distributed snapshots: determining global states of distributed systems. ACM Trans Comput Syst 3: 63–75 (1985)CrossRefGoogle Scholar
  15. 15.
    Charlesworth A: The multiway rendezvous. ACM Trans Program Lang Syst 9: 350–366 (1987)MATHCrossRefGoogle Scholar
  16. 16.
    Cypher R, Leu E: The semantics of blocking and non-blocking send and receive primitives. Proc 8th International Parallel Processing Symposium, pp 729–735, 1994Google Scholar
  17. 17.
    Davey BA, Priestley HA: Introduction to lattices and order. Cambridge University Press, 1990Google Scholar
  18. 18.
    Dijkstra EW: Shmuel Safra’s version of termination detection. Tech Rep EWD 998, Department of Computer Science, The University of Texas at Austin, 1987Google Scholar
  19. 19.
    Dijkstra EW, Feijen WHJ, van Gasteren, AJM: Derivation of a termination detection algorithm for distributed computations. Inf Proc Lett 16: 217–219 (1983)CrossRefGoogle Scholar
  20. 20.
    Evangelist M, Francez N, Katz S: Multiparty interactions for interprocess communication and synchronization. IEEE Trans Softw Eng SE-15: 1417–1426 (1989)CrossRefGoogle Scholar
  21. 21.
    Fidge C: Dynamic analysis of event orderings in message passing systems. PhD thesis, Department of Computer Science, The Australian National University, 1989Google Scholar
  22. 22.
    Fidge C: Logical time in distributed computing systems. Computer 24(8): 28–33 (1991)CrossRefGoogle Scholar
  23. 23.
    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–383Google Scholar
  24. 24.
    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)Google Scholar
  25. 25.
    Hoare CAR: Communicating sequential processes. Commun ACM 21: 666–677 (1978)MATHCrossRefGoogle Scholar
  26. 26.
    Katz S: A superimposition control construct for distributed systems. ACM Trans Program Lang Syst 15: 337–356 (1993)CrossRefGoogle Scholar
  27. 27.
    Kopetz H: Sparse time versus dense time in distributed real-time systems. Proc 12th Int Conf Distr Computing Sys, pp 460–467, 1992Google Scholar
  28. 28.
    Lamport L: Time, clocks, and the orderings of events in a distributed system. Commun ACM 21: 558–565 (1978)MATHCrossRefGoogle Scholar
  29. 29.
    Martin AJ: An axiomatic definition of synchronization primitives. Acta Inf 16: 219–235 (1981)MATHGoogle Scholar
  30. 30.
    Mattern F: Algorithms for distributed termination detection. Distrib Comput 2: 161–175 (1987)CrossRefGoogle Scholar
  31. 31.
    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)Google Scholar
  32. 32.
    Milner AJRG: A calculus of communicating systems. Springer, Berlin Heidelberg New York, LNCS 92 (1980)MATHGoogle Scholar
  33. 33.
    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, 1988Google Scholar
  34. 34.
    Nelson BJ: Remote procedure call. Tech Rep CS-81-119, Carnegie-Melon University, 1981Google Scholar
  35. 35.
    Raynal M, Schiper A, Toueg S: The causal ordering abstraction and a simple way to implement it. Inf Proc Lett 39: 343–350 (1991)MATHCrossRefMathSciNetGoogle Scholar
  36. 36.
    Renesse R van: Causal controversy at Le Mont St. Michel. Oper Syst Rev 27(2): 44–53 (1993)CrossRefGoogle Scholar
  37. 37.
    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)Google Scholar
  38. 38.
    Schlichting RD, Schneider FB: Using message passing for distributed programming: proof rules and disciplines. ACM Trans Program Lang Syst 6: 402–431 (1984)MATHCrossRefGoogle Scholar
  39. 39.
    Schmuck F: The use of efficient broadcast protocols in asynchronous distributed systems. Tech Rep 88–928, Cornell University, 1988Google Scholar
  40. 40.
    Seitz C: Multicomputers. In: CAR Hoare (ed) Developments in concurrency and communication. Addison-Wesley, 1990 pp 131–201Google Scholar
  41. 41.
    Shatz SM: Communication mechanisms for programming distributed systems. Computer 17: 21–28 (1984)CrossRefGoogle Scholar
  42. 42.
    Soneoka T, Ibaraki T: Logically instantaneous Message passing in asynchronous distributed systems. IEEE Trans Comput 43: 513–527 (1994)CrossRefGoogle Scholar
  43. 43.
    Stoller SD, Schneider FB: Verifying programs that use causally-ordered message-passing. Science of Computer Programming 24: 105–128 (1995)MATHCrossRefMathSciNetGoogle Scholar
  44. 44.
    Tanenbaum A: Distributed operating systems. Prentice-Hall, 1995Google Scholar
  45. 45.
    Tel G: Topics in distributed algorithms. Vol 1 of Cambridge International Series on Parallel Computing. Cambridge University Press, 1991Google Scholar
  46. 46.
    Topor RW: Termination detection for distributed computations. Inf Proc Lett 18: 33–36 (1984)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag 1996

Authors and Affiliations

  • Bernadette Charron-Bost
    • 1
  • Friedemann Mattern
    • 2
  • Gerard Tel
    • 3
  1. 1.Laboratoire d’InformatiqueEcole PolytechniquePalaiseau CedexFrance
  2. 2.Department of Computer ScienceTechnical University of DarmstadtDarmstadtGermany
  3. 3.Department of Computer ScienceUniversity of UtrechtTB UtrechtThe Netherlands

Personalised recommendations