# On self-stabilizing wait-free clock synchronization

## Abstract

Clock synchronization algorithms which can tolerate any number of processors that can fail by ceasing operation for an unbounded number of steps and resuming operation (with or) without knowing that they were faulty are called *Wait-Free*. Furthermore, if these algorithms are also able to work correctly even when the starting state of the system is arbitrary, they are called *Wait-Free, Self-Stabilizing*. This work deals with the problem of *Wait-Free, Self-Stabilizing Clock Synchronization* of *n* processors in an “in-phase” multiprocessor system and presents a solution with quadratic synchronization time. The best previous solution has cubic synchronization time. The idea of the algorithm is based on a simple analysis of the difficulties of the problem which helped us to see how to “re-parametrize” the cubic previously mentioned algorithm in order to get the quadratic synchronization time solution. Both the protocol and its analysis are intuitive and easy to understand.

## AMS Subject Classification (1991)

68M10 68Q22 68Q25## CR Subject Classification (1991)

D.4.1 D.4.5 D.4.7## Keywords and phrases

Concurrency Digital Clocks Distributed Computing Fault tolerance PRAM computation model Self-Stabilization Synchronization Synchronous Systems Wait-Free Synchronization## Preview

Unable to display preview. Download preview PDF.

## References

- 1.A. Arora, S. Dolev, and M. Gouda. Maintaining Digital Clocks in Step.
*Parallel Processing Letters 1*, 1, 1991, pp. 11–18.Google Scholar - 2.Y. Afek, S. Kutten and M. Yung. Memory-Efficient Self Stabilization on General Networks. In
*Proceedings of the 4th International Workshop on Distributed Algorithms*, volume 486 of*Lecture Notes in Computer Science*, Springer-Verlag 1990, pp. 15–28.Google Scholar - 3.H. Attiya, N. A. Lynch and N. Shavit. Are Wait-Free Algorithms Fast? In
*Proceedings of the 31st IEEE Symposium on Foundations of Computer Science*, 1990, pp. 55–64.Google Scholar - 4.B. Awerbuch, B. Patt-Shamir and G. Varghese. Local Checking and Correction. In
*Proceedings of the 32nd IEEE Symposium on Foundations of Computer Science*, 1991, pp. 268–277.Google Scholar - 5.B. Awerbuch and G. Varghese. Distributed Program Checking: A Paradigm for Building Self-Stabilizing Distributed Protocols, In
*Proceedings of the 32nd IEEE Symposium on Foundations of Computer Science*, 1991, pp. 258–267.Google Scholar - 6.J.-M. Courver, N. Francez and M. Gouda. Asynchronous Unison. In
*Proceedings of the 12th IEEE Conference on Distributed Computing Systems*, 1992, pp. 486–493.Google Scholar - 7.E.W. Dijkstra. Self Stabilizing Systems in Spite of Distributed Control.
*Communication of the ACM 17*, 1974, pp. 643–644.Google Scholar - 8.D. Dolev, J.Y. Halpern and H.R. Strong. On the Possibility and Impossibility of Achieving Clock Synchronization.
*Journal of Computer Systems Science 32*, 2, 1986, pp. 230–250.Google Scholar - 9.S. Dolev, A. Israeli and S. Moran. Self Stabilization on Dynamic Systems Assuming Only Read/Write Atomicity.
*Distributed Computing 7*, 1, 1993, pp. 3–16.Google Scholar - 10.S. Dolev and J.L. Welch. Wait-Free Clock Synchronization. In
*Proceedings of the 12th ACM Symposium on Principles of Distributed Computing*, 1993. pp. 97–108.Google Scholar - 11.M.G. Gouda and T. Herman. Stabilizing Unison.
*Information Processing Letters 35*, 1990, pp. 171–175.MathSciNetGoogle Scholar - 12.J. Halpern, B. Simons, R. Strong and D. Dolev. Fault-Tolerant Clock Synchronization. In
*Proceedings Of the 3rd ACM Symposium on Principles of Distributed Computing*, 1984, pp. 89–102.Google Scholar - 13.Herlihy, M., Wait-free synchronization.
*ACM Transactions on Programming Languages and Systems 13*, 1 (Jan. 1991), pp. 124–149.Google Scholar - 14.K. Hwang.
*Advanced Computer Architectures, Parallelism, Scalability, Programmability*. McGraw-Hill, Inc. 1993.Google Scholar - 15.R. Karp and V. Ramachandran. Parallel Algorithms for Shared Memory Machines. In J.van Leeuwen, ed.,
*Handbook of Theoretical Computer Science, Volume A: Algorithms and Complexity*Elsevier, Amsterdam 1990. Also in: Technical Report UCB/CSD 88/408, Computer Science Division, University of California, March 1988.Google Scholar - 16.L. Lamport. On Interprocess Communication.
*Distributed Computing 1*, 1, 1986, pp. 86–101.CrossRefGoogle Scholar - 17.F.T. Leighton.
*Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes*. Morgan Kaufmann Publishers, Inc., 1992.Google Scholar - 18.L. Lamport and P.M. Melliar-Smith. Synchronizing Clocks in the Presence of Faults.
*Journal of the ACM 32*, 1, 1985, pp. 1–36.Google Scholar - 19.K. Marzullo.
*Loosely-Coupled Distributed Services: A Distributed Time Service*, Ph.D. Thesis, Stanford University, 1983.Google Scholar - 20.S. Mahaney and F. Schneider. Inexact Agreement: Accuracy, Precision and Graceful Degradation. In
*Proceedings of the 4th ACM Symposium on Principles of Distributed Computing*, 1985, pp. 237–249.Google Scholar - 21.T.K. Srikanth and S. Toueg. Optimal Clock Synchronization.
*Journal of the ACM 34*, 3, 1987, pp. 626–645.Google Scholar - 22.G. Varghese.
*Self-Stabilization by Local Checking and Correction*. Ph.D. Thesis, MIT Laboratory for Computer Science, 1992.Google Scholar - 23.J.L. Welch and N. Lynch. A New Fault-Tolerant Algorithm for Clock Synchronization.
*Information and Computation 77*, 1, 1988, pp. 1–36.Google Scholar