ACM Home Page
Please provide us with feedback. Feedback
Wait-free synchronization
Full text PdfPdf (1.75 MB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 13 ,  Issue 1  (January 1991) table of contents
Pages: 124 - 149  
Year of Publication: 1991
ISSN:0164-0925
Author
Maurice Herlihy  Digital Equipment Corp., Cambridge, MA
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 53,   Downloads (12 Months): 438,   Citation Count: 266
Additional Information:

abstract   references   cited by   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/114005.102808
What is a DOI?

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

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
ANDERSON, J. H., AND GOUDA, M.G. The virtue of patience: Concurrent programming with and without waiting. Private communication.
 
2
3
4
5
6
7
 
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
 
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
12
13
14
15
16
 
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
20
 
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
24
25
 
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
28
29
 
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  266


REVIEW

"Peter N. van den Bosch : Reviewer"

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 pr  more...