Adding Time to Synchronous Process Communications

In distributed real-time systems, communicating processes cannot be delayed for arbitrary amounts of time while waiting for messages. Thus, communication primitives used for real-time programming usually allow the inclusion of a deadline or timeout to limit potential delays due to synchronization. This paper interprets timed synchronous communication as having absolute deadlines. Various ways of implementing deadlines are discussed, and two useful timed synchronous communication problems are identified which differ in the number of participating senders and receivers and type of synchronous communication. For each problem, a simple algorithm is presented and shown to be correct. The algorithms are shown to guarantee maximal success and to require the smallest delay intervals during which processes wait for synchronous communication. We also evaluate the number of messages used to reach agreement.

[1]  Nancy A. Lynch,et al.  A new fault-tolerant algorithm for clock synchronization , 1984, PODC '84.

[2]  Kenneth P. Birman,et al.  Communication Support for Reliable Distributed Computing , 1986, Fault-Tolerant Distributed Computing.

[3]  P. M. Melliar-Smith,et al.  Byzantine clock synchronization , 1984, PODC '84.

[4]  Gregory R. Andrews,et al.  Concepts and Notations for Concurrent Programming , 1983, CSUR.

[5]  Kang G. Shin,et al.  Intertask communications in an integrated multirobot system , 1987, IEEE J. Robotics Autom..

[6]  Paul N. Hilfinger Abstraction mechanisms and language design , 1983, ACM distinguished dissertations.

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

[8]  Leslie Lamport,et al.  Using Time Instead of Timeout for Fault-Tolerant Distributed Systems. , 1984, TOPL.

[9]  Paul G. Spirakis,et al.  Real-Time Synchronization of Interprocess Communications , 1984, TOPL.

[10]  Richard A. Volz,et al.  Timing Issues in the Distributed Execution of Ada Programs , 1987, IEEE Transactions on Computers.

[11]  Danny Dolev,et al.  Fault-tolerant clock synchronization , 1984, PODC '84.

[12]  Juris Hartmanis,et al.  The Programming Language Ada Reference Manual American National Standards Institute, Inc. ANSI/MIL-STD-1815A-1983 , 1983, Lecture Notes in Computer Science.

[13]  Michael Stonebraker,et al.  A Formal Model of Crash Recovery in a Distributed System , 1983, IEEE Transactions on Software Engineering.

[14]  Hector Garcia-Molina,et al.  Applications of Byzantine agreement in database systems , 1986, TODS.

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