[go: up one dir, main page]

Skip to main content
Log in

Synchronous, asynchronous, and causally ordered communication

  • Published:
Distributed Computing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  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. Ahuja M: Flush primitives for asynchronous distributed systems. Inf Proc Lett 34: 5–12 (1990)

    Article  MATH  MathSciNet  Google Scholar 

  3. Baeten JCM, Weijland WP: Process algebra. Vol 18 of Cambridge Tracts in Theoretical Computer Science, Cambridge University Press, 1990

  4. Bal HE: Programming distributed systems. Prentice Hall, 1990

  5. Birell AD, Nelson BJ: Implementing remote procedure calls. ACM Trans Comput Syst 3: 39–59 (1984)

    Article  Google Scholar 

  6. Birman K, van Renesse R (eds): Reliable distributed computing with the Isis toolkit. IEEE Computer Society Press, 1994

  7. Birman K, Joseph TA: Reliable communication in the presence of failures. ACM Trans Comput Syst 5: 47–76 (1987)

    Article  Google Scholar 

  8. Birman K, Schiper A, Stephenson P: Lightweight causal and atomic group multicast. ACM Trans Comput Syst 9: 272–314 (1991)

    Article  Google Scholar 

  9. Bouchitte V, Habib M: The calculation of invariants for ordered sets. In: I Rival (ed) Algorithms and order. Kluwer 1989, pp 231–279

  10. Bougé L: Repeated snapshots in distributed systems with synchronous communications and their implementation in CSP. Theor Comput Sci 49: 145–169 (1987)

    Article  MATH  Google Scholar 

  11. Brinch Hansen P: Distributed processes: a distributed programming concept. Commun ACM 21: 934–941 (1978)

    Article  MATH  Google Scholar 

  12. Capek M: Towards a widening of the notion of causality. Diogenes 28: 63–90 (1959)

    Article  Google Scholar 

  13. Capek M: Time-space rather than space-time. Diogenes 123: 30–49 (1983)

    Article  Google Scholar 

  14. Chandy KM, Lamport L: Distributed snapshots: determining global states of distributed systems. ACM Trans Comput Syst 3: 63–75 (1985)

    Article  Google Scholar 

  15. Charlesworth A: The multiway rendezvous. ACM Trans Program Lang Syst 9: 350–366 (1987)

    Article  MATH  Google Scholar 

  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, 1994

  17. Davey BA, Priestley HA: Introduction to lattices and order. Cambridge University Press, 1990

  18. Dijkstra EW: Shmuel Safra’s version of termination detection. Tech Rep EWD 998, Department of Computer Science, The University of Texas at Austin, 1987

  19. Dijkstra EW, Feijen WHJ, van Gasteren, AJM: Derivation of a termination detection algorithm for distributed computations. Inf Proc Lett 16: 217–219 (1983)

    Article  Google Scholar 

  20. Evangelist M, Francez N, Katz S: Multiparty interactions for interprocess communication and synchronization. IEEE Trans Softw Eng SE-15: 1417–1426 (1989)

    Article  Google Scholar 

  21. Fidge C: Dynamic analysis of event orderings in message passing systems. PhD thesis, Department of Computer Science, The Australian National University, 1989

  22. Fidge C: Logical time in distributed computing systems. Computer 24(8): 28–33 (1991)

    Article  Google Scholar 

  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–383

    Google Scholar 

  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. Hoare CAR: Communicating sequential processes. Commun ACM 21: 666–677 (1978)

    Article  MATH  Google Scholar 

  26. Katz S: A superimposition control construct for distributed systems. ACM Trans Program Lang Syst 15: 337–356 (1993)

    Article  Google Scholar 

  27. Kopetz H: Sparse time versus dense time in distributed real-time systems. Proc 12th Int Conf Distr Computing Sys, pp 460–467, 1992

  28. Lamport L: Time, clocks, and the orderings of events in a distributed system. Commun ACM 21: 558–565 (1978)

    Article  MATH  Google Scholar 

  29. Martin AJ: An axiomatic definition of synchronization primitives. Acta Inf 16: 219–235 (1981)

    MATH  Google Scholar 

  30. Mattern F: Algorithms for distributed termination detection. Distrib Comput 2: 161–175 (1987)

    Article  Google Scholar 

  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. Milner AJRG: A calculus of communicating systems. Springer, Berlin Heidelberg New York, LNCS 92 (1980)

    MATH  Google Scholar 

  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, 1988

    Google Scholar 

  34. Nelson BJ: Remote procedure call. Tech Rep CS-81-119, Carnegie-Melon University, 1981

  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)

    Article  MATH  MathSciNet  Google Scholar 

  36. Renesse R van: Causal controversy at Le Mont St. Michel. Oper Syst Rev 27(2): 44–53 (1993)

    Article  Google Scholar 

  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. Schlichting RD, Schneider FB: Using message passing for distributed programming: proof rules and disciplines. ACM Trans Program Lang Syst 6: 402–431 (1984)

    Article  MATH  Google Scholar 

  39. Schmuck F: The use of efficient broadcast protocols in asynchronous distributed systems. Tech Rep 88–928, Cornell University, 1988

  40. Seitz C: Multicomputers. In: CAR Hoare (ed) Developments in concurrency and communication. Addison-Wesley, 1990 pp 131–201

  41. Shatz SM: Communication mechanisms for programming distributed systems. Computer 17: 21–28 (1984)

    Article  Google Scholar 

  42. Soneoka T, Ibaraki T: Logically instantaneous Message passing in asynchronous distributed systems. IEEE Trans Comput 43: 513–527 (1994)

    Article  Google Scholar 

  43. Stoller SD, Schneider FB: Verifying programs that use causally-ordered message-passing. Science of Computer Programming 24: 105–128 (1995)

    Article  MATH  MathSciNet  Google Scholar 

  44. Tanenbaum A: Distributed operating systems. Prentice-Hall, 1995

  45. Tel G: Topics in distributed algorithms. Vol 1 of Cambridge International Series on Parallel Computing. Cambridge University Press, 1991

  46. Topor RW: Termination detection for distributed computations. Inf Proc Lett 18: 33–36 (1984)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

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

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s004460050018

Key words

Navigation