# How a rainbow coloring function can simulate wait-free handshaking

## Abstract

How to construct shared data objects is a fundamental issue in asynchronous concurrent systems, since these objects provide the means for communication and synchronization between processes in these systems. Constructions which guarantee that concurrent access to the shared object by processes is free from waiting are of particular interest, since they may help to increase the amount of parallelism in such systems. The problem of constructing a *k*-valued wait-free shared register out of binary subregisters of the same type where each write access consists of one subwrite (*constructions with one-write*) has received some attention, since it lies at the heart of studying lower bounds of the complexities of register constructions and trade-offs between them. The first such construction was for the safe register case which uses *k* binary safe registers and exploits the properties of a rainbow coloring function of a hypercube. The best known construction for the regular/atomic case uses ( _{2} ^{k} ) binary regular/atomic registers. In this work we show how the rainbow coloring function can be extended to simulate a handshaking mechanism between the reader and the writer of the register, thus offering a solution for the atomic register case with *one* reader, which uses only 3*k* − 2 binary registers. The lower bound for such a construction is *k*−1.

## Preview

Unable to display preview. Download preview PDF.

## References

- 1.S. Chaudhuri, M. J. Kosa and J.L. Welch. “Upper and Lower Bounds for One-Write Multivalued Regular Registers”. In
*Proceedings of the 3rd IEEE Symposium on Parallel and Distributed Processing*, December 1991, pp. 134–141. Also available as TR91-026 from the University of North Carolina at Chapel Hill.Google Scholar - 2.S. Chaudhuri and J.L. Welch. “Bounds on the Costs of Register Implementations”. In
*Proceedings of the 4th International Workshop on Distributed Algorithms*, volume 486 of*Lecture Notes in Computer Science*, Springer-Verlag 1990, pp. 402–421.Google Scholar - 3.P.J. Courtois, F. Heymans and D.L. Parnas. “Concurrent Control With Readers and Writers”.
*Communication of the ACM***14**(10):667–668, 1971.Google Scholar - 4.C. Dwork, M. Herlihy, S. Plotkin and O. Waarts. “Time-Lapse Snapshots”. In
*Proceedings of the First Israel Symposium on the Theory of Computing and Systems*, volume 601 of*Lecture Notes in Computer Science*, Springer-Verlag 1992, pp. 154–170.Google Scholar - 5.C. Dwork, O. Waarts. “Simple and Efficient Bounded Concurrent Timestamping or Bounded Concurrent Timestamp Systems are Comprehensible!” In
*Proceedings of the 24th ACM Symposium on Theory of Computing*, 1992, pp. 656–666.Google Scholar - 6.Goos Kant and Jan Van Leeuwen. “The File Distribution Problem for Processor Networks”. In
*Proceedings of the Second Scandinavian Workshop on Algorithm Theory*, volume 447 of*Lecture Notes in Computer Science*, Springer-Verlag 1990, pp. 48–59.Google Scholar - 7.A. Israeli and A Shaham. “Optimal Multi-Writer Multi-reader Atomic Registers”. In
*Proceedings of the 11th Annual ACM Symposium on Principles of Distributed Computing*, 1992, pp. 71–82.Google Scholar - 8.P. Jayanti, A. Sethi and E.L. Lloyd. “Minimal Shared Information for Concurrent Reading and Writing”. In
*Proceedings of the 5th International Workshop on Distributed Algorithms*, October 1991, volume 579 of*Lecture Notes in Computer Science*, Springer-Verlag 1992, pp. 212–228.Google Scholar - 9.L.M. Kirousis, E. Kranakis, P.M.B. Vitányi. “Atomic Multireader Register” In
*Proceedings of the 2nd International Workshop on Distributed Algorithms*, volume 312 of*Lecture Notes in Computer Science*, Springer-Verlag 1987, pp. 278–296.Google Scholar - 10.L.M. Kirousis, P. Spirakis, Ph. Tsigas. “Reading Many Variables in One Atomic Operation: Solutions With Linear or Sublinear Complexity”. In
*Proceedings of the 5th International Workshop on Distributed Algorithms*, October 1991, volume 579 of*Lecture Notes in Computer Science*, Springer-Verlag 1992, pp. 229–241. Also to appear in*IEEE Transactions on Parallel and Distributed Systems*.Google Scholar - 11.L. Lamport. “On Interprocess Communication, Part I: Basic Formalism, Part II: Basic Algorithms”.
*Distributed Computing*,**1**:77–101, 1986.Google Scholar - 12.J. Tromp. “How to Construct an Atomic Variable” In
*Proceedings of the 3rd International Workshop on Distributed Algorithms*, volume 392 of*Lecture Notes in Computer Science*, Springer-Verlag 1989, pp. 492–302.Google Scholar