Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Open access

Wait-free synchronization

Published: 01 January 1991 Publication History

Abstract

A wait-free implementation of a concurrent data object is one that guarantees that any process can complete any operation in a finite number of steps, regardless of the execution speeds of the other processes. The problem of constructing a wait-free implementation of one data object from another lies at the heart of much recent work in concurrent algorithms, concurrent data structures, and multiprocessor architectures. First, we introduce a simple and general technique, based on reduction to a concensus protocol, for proving statements of the form, “there is no wait-free implementation of X by Y.” We derive a hierarchy of objects such that no object at one level has a wait-free implementation in terms of objects at lower levels. In particular, we show that atomic read/write registers, which have been the focus of much recent attention, are at the bottom of the hierarchy: thay cannot be used to construct wait-free implementations of many simple and familiar data types. Moreover, classical synchronization primitives such astest&set and fetch&add, while more powerful than read and write, are also computationally weak, as are the standard message-passing primitives. Second, nevertheless, we show that there do exist simple universal objects from which one can construct a wait-free implementation of any sequential object.

References

[1]
ANDERSON, J. H., AND GOUDA, M.G. The virtue of patience: Concurrent programming with and without waiting. Private communication.
[2]
ASPNES, J., AND HERLIHY, M.P. Fast randomized consensus using shared memory. J. Algorlth. 1I (1990), 441-461.
[3]
BAR-NOY, A., AND DOLEV, D. Shared memory vs. message-passing in an asynchronous distnbuted environment. In Proceed~n~s of the 8th ACM SIGACT-SIGcPS OEYmpos~um on Principles of Distributed Cornputing (Aug. 1989), pp. 307 318.
[4]
BLOOM, B. Constructing two-wnter atomic registers. In Proceedings of the 6tb ACM OEYmpostum on Princ~ples of Dtstr~buted Computing (1987), pp. 249-259.
[5]
BURNS, J. E., AND PETERSON, G.L. Constructing multi-reader atomic values from non-atomic values. In Proceedings of the 6th A CM Symposium on Prmciples of D~str~buted Compuhng (1987), pp. 222-231.
[6]
CHOR, B., ISRAELI, A., AND LI, M. On processor coordination using asynchronous hardware. In ProceedinAEs of the 6th ACM Symposium on Princtples of D~stributed Computing (1987), pp. 86 97.
[7]
DOLEV, D., DWORK, C., AND STOCKMEYER, L. On the minimal synchronism needed for distributed consensus. J. ACM 34, I (Jan. 1987), 77 97.
[8]
PFISTER, G. H., ET AL. The IBM research parallel processor prototype (rp3): Introduction and architecture. Presented at the International Conference on Parallel Processmg, 1985.
[9]
FISCHER, M. J., LYNCH, N. A., AND PATERSON, M.S. Impossibility of distnbuted consensus with one faulty process. J ACM32, 2 (April 1985), 374 382.
[10]
GOTTL~EB, A., GRIS~{MAN, R., KRUSKAL, C. P. MCAULIFFE, K. P., RUDOLPH, L., AND SNIR, M. The NYU ultracomputer--Designing an mimd parallel computer. IEEE Trans. Comput. C-32, 2 (Feb. 1984) 175-189.
[11]
GOTTLIEB, A., LUBACHEVSKY, B. D., AND RUDOLPH, L. Basic techniques for the efficient coordination of very large numbers of cooperating sequential processors. ACM Trans. Program. Lang. Syst. 5, 2 (April 1983). 164-189.
[12]
HERLIHY, M.P. A methodology for implementing highly concurrent data structures. In ProceedmBs of the 2nd ACM SIGPLAN OEymposi~rn on Principles and Practtce of Parallel Programming (Match 1990).
[13]
HERLIHY, M.P. Impossibihty and universality results for wait-free synchronization. In Pro ceedmgs of the 7th ACM SIGACT-SIGOPS Symposium on Principles of D~stributed Computmg (Aug. 1988), pp. 276-290.
[14]
HE}~HHY, M. P., AND WING, J.M. Axioms for concurrent objects. In Proceedings of the 14th ACM Symposium on Prmciples of Programrn~n~ Languages (Jan. 1987), pp. 13-26.
[15]
KRUSKAL, C. P., RUDOLPH, L, AND SNIR, M. Efficient synchromzation on multiprocessors with shared memory. In Proceedmgs of the 5th ACM SfGACT~SIGcPS Symposium on Pr~nc~ples of Distributed Computmg (Aug. 1986).
[16]
LAMPORT, L. Concurrent reading and writing. Commun. ACM 20, 11 (Nov. 1977), 806-811.
[17]
LAMPORT, L. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Comput. C-28, 9 (Sept. 1979), 690.
[18]
LAMPORT, L. On interprocess communication, parts i and il. Distributed Comput. I (1986), 77-101.
[19]
LAMPORT, L. Specifying concurrent program modules. ACM Trans. Program Lang. Syst. 5, 2 (April 1983), 190-222.
[20]
LANIN, V., AND SHASHA, D. Concurrent set manipulation without locking. In Proceedings of the 7th ACM Symposium on Principles o{ Database Systems (Match 1988), pp. 211-220.
[21]
LOUI, M. C., AND ABU-AMARA, H.H. Memo~, Requirements for Agreement Among Unreliable Asynchronous Processes, vol. 4. Jai Press, Greenwich, Conn., 1987, pp. 163-183.
[22]
LYNCH, N. A., AND TUTTLE, M. R. An introduction to input/output automata. Tech. Rep. MIT/LCS/TM-373, MIT Laboratory for Computer Science, Nov. 1988.
[23]
NEWMAN-WOLFE, R. A protocol for wait-free, atomic, multi-reader shared variables. In Proceedings of the 6th ACM OEvmposium on Principles o{ Distributed Computing (1987) pp. 232 249.
[24]
PAPADIMITRIOU, C. H. The serializability of concurrent database updates. J. ACM 26, 4 (Oct. 1979), 631 653.
[25]
PETERSON, G.L. Concurrent reading while writing. ACM Trans. Program. Lang. Syst 5, 1 (Jan. 1983), 46-55.
[26]
PETERSON, G. L., AND BURNS, J.E. Concurrent reading while writing Ih The multi-writer case. Tech. Rep. GIT-ICS-86/26, Georgia Institute of Technology, Dec. 1986.
[27]
PLOTKIN, S. A. Sticky bits and universality of consensus. In Proceedings of the 8th ACM Symposium on Principles o{ Distributed Computing (1989), pp. 159 176.
[28]
SELTZ, C.L. The cosmic cube. Commun. ACM28, 1 (Jan. 1985).
[29]
alNGH, A. K., ANDERSON, J. H., AND GOUDA, M. G. The elusive atomic register revisited. In Proceedings o{ the 6th ACM Symposium on Principles o{ Distributed Computing, (1987), pp. 206-221.
[30]
aTONE, H. S. Database applications of the fetch-and-add instruction. IEEE Trans. Comput C-33, 7 (July 1984), 604-612.
[31]
VITANYI, P., AND AWERBUCH, B. Atomic shared register access by asynchronous hardware. In Proceedings o{ the 27th IEEE OEvmposium on Foundations o{ Computer Sczence, (1986), pp. 223-243. Sec also SIGACT News 18, 4 (Summer, 1987), errata.

Cited By

View all
  • (2025)Synergistic knowledgeTheoretical Computer Science10.1016/j.tcs.2024.1149021023(114902)Online publication date: Jan-2025
  • (2024)NotNets: Accelerating Microservices by Bypassing the NetworkProceedings of the 15th ACM SIGOPS Asia-Pacific Workshop on Systems10.1145/3678015.3680494(67-73)Online publication date: 4-Sep-2024
  • (2024)Parallel Algebraic Effect HandlersProceedings of the ACM on Programming Languages10.1145/36746518:ICFP(756-788)Online publication date: 15-Aug-2024
  • Show More Cited By

Recommendations

Reviews

Peter N. van den Bosch

A set of concurrent processes sharing a data object form a fault-tolerant system only if nonfaulty processes can complete their operations in a finite number of steps even if the system contains arbitrarily slow, including halted, processes provided that, except for sharing the object, these slow processes are independent of the nonfaulty processes. An implementation of a data object that guarantees this is called wait-free . Wait-free implementations have a clear advantage, which has led to considerable interest in such implementations of objects. This paper develops a proof technique for statements of the form “X cannot provide a wait-free implementation of Y.” This technique is then used to derive a hierarchy of objects such that no object can provide a wait-free implementation of any object at a higher level. Herlihy goes on to show that several classical synchronization primitives are unable to provide wait-free implementations of all sequential objects shared by a finite set of processes, but that objects do exist that can. Considering its length, the paper is elegant, thorough, and well-motivated throughout. It is also highly self-contained in the sense that any computer scientist should be able to read it without needing to dig up a multi-link chain of prior references to get the background. As such, I commend this paper as a model for anyone contemplating writing a paper with more than one theorem in it: considering the wide acceptance of programming disciplines such as top-down refinement in our field, it is amazing how many technical papers insist on throwing theorem after theorem at the reader without once pausing to suggest a plausible reason for doing so; in contrast, the technical content of this paper follows naturally from the discussion in which it is embedded.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 January 1991
Published in TOPLAS Volume 13, Issue 1

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. linearization
  2. wait-free synchronization

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)787
  • Downloads (Last 6 weeks)94
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2025)Synergistic knowledgeTheoretical Computer Science10.1016/j.tcs.2024.1149021023(114902)Online publication date: Jan-2025
  • (2024)NotNets: Accelerating Microservices by Bypassing the NetworkProceedings of the 15th ACM SIGOPS Asia-Pacific Workshop on Systems10.1145/3678015.3680494(67-73)Online publication date: 4-Sep-2024
  • (2024)Parallel Algebraic Effect HandlersProceedings of the ACM on Programming Languages10.1145/36746518:ICFP(756-788)Online publication date: 15-Aug-2024
  • (2024)MemSnap: A Fast Adaptive Snapshot Algorithm for RMWable Shared-MemoryProceedings of the 43rd ACM Symposium on Principles of Distributed Computing10.1145/3662158.3662820(25-35)Online publication date: 17-Jun-2024
  • (2024)History-Independent Concurrent ObjectsProceedings of the 43rd ACM Symposium on Principles of Distributed Computing10.1145/3662158.3662814(14-24)Online publication date: 17-Jun-2024
  • (2024)Strong Linearizability using Primitives with Consensus Number 2Proceedings of the 43rd ACM Symposium on Principles of Distributed Computing10.1145/3662158.3662790(432-442)Online publication date: 17-Jun-2024
  • (2024)The Computational Power of Distributed Shared-Memory Models with Bounded-Size RegistersProceedings of the 43rd ACM Symposium on Principles of Distributed Computing10.1145/3662158.3662789(310-320)Online publication date: 17-Jun-2024
  • (2024)Determining Recoverable Consensus NumbersProceedings of the 43rd ACM Symposium on Principles of Distributed Computing10.1145/3662158.3662775(3-13)Online publication date: 17-Jun-2024
  • (2024)SPORE: Combining Symmetry and Partial Order ReductionProceedings of the ACM on Programming Languages10.1145/36564498:PLDI(1781-1803)Online publication date: 20-Jun-2024
  • (2024)A Conflict-Resilient Lock-Free Linearizable Calendar QueueACM Transactions on Parallel Computing10.1145/363516311:1(1-32)Online publication date: 11-Mar-2024
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media