ACM Home Page
Please provide us with feedback. Feedback
A methodology for implementing highly concurrent data objects
Full text PdfPdf (1.60 MB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 15 ,  Issue 5  (November 1993) table of contents
Pages: 745 - 770  
Year of Publication: 1993
ISSN:0164-0925
Author
Maurice Herlihy  Digital Equipment Corp., Cambridge, MA
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 22,   Downloads (12 Months): 169,   Citation Count: 72
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/161468.161469
What is a DOI?

ABSTRACT

A concurrent object is a data structure shared by concurrent processes. Conventional techniques for implementing concurrent objects typically rely on critical sections; ensuring that only one process at a time can operate on the object. Nevertheless, critical sections are poorly suited for asynchronous systems: if one process is halted or delayed in a critical section, other, nonfaulty processes will be unable to progress. By contrast, a concurrent object implementation is lock free if it always guarantees that some process will complete an operation in a finite number of steps, and it is wait free if it guarantees that each process will complete an operation in a finite number of steps. This paper proposes a new methodology for constructing lock-free and wait-free implementations of concurrent objects. The object's representation and operations are written as stylized sequential programs, with no explicit synchronization. Each sequential operation is atutomatically transformed into a lock-free or wait-free operation using novel synchronization and memory management algorithms. These algorithms are presented for a multiple instruction/multiple data (MIMD) architecture in which n processes communicate by applying atomic read, write, load_linked, and store_conditional operations to a shared memory.


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
 
2
3
 
4
BAYER, R., AND SCHKOLNICK, M. 1977. Concurrency of operations on B-trees A~ta I,f. 1, 1, 1 21.
 
5
BiSWAS, J., AND BROWNE, J.C. 1987. Simultaneous update of priority structures. In Proceedings of the 1987 International Conference o, Paz'allel Processzng. pp 124 131.
6
7
 
8
9
10
 
11
DWORK, C., SHMOYS, D., AND STOCKMEYER, L. 1986. Flipping persuasively in constant expected time. In The 27th Annual Symposium on Foundatzons of Computer SczeTzce (Oct.). 222-232.
 
12
ELL{S, C. S. 1980. Concurrent search and insertion in 2-3 trees. Acte Inf. 14, i (Apr.), 63-86.
 
13
ENCORE COMPUTER COm~ORAT~ON 1989. Multimax technical summary. Order Number 726-01759, Rev E.
14
15
 
16
GOTTLIEB, A., GRISHMAN, R., KJ~USKAL, C. P., McAULIFFE, K. P., RUDOLPH, L., AND SNIR, M. 1984. The nyu ultracomputer--designing an MIMD parallel computer. IEEE Trans. Comput. C-32, 2 (Feb.), 175 189.
17
 
18
GumAs. L., AND SEDaEWrCK, R. 1978. A dichromatic framework for balanced trees. In 19th ACM Symposium on FoundatioTzs of Computer Science. ACM, New York, pp. 8-21.
19
20
21
22
 
23
IBM. System/370 principles of operation Order Number GA22-7000.
 
24
JENSEN, E. H, HAGENSEN, G W., AND BROUGHTON, J M. 1987. A new approach to exclusive data access in shared memory multiprocessors. Tech. Rep. UCRL-97663, Lawrence Livermore National Laboratory, Nov.
25
 
26
K~E, G. 1989. MIPS RISC Archttecture. Prentice-Hall, Englewood Cliffs, N.J.
 
27
28
 
29
LAMPORT, L. 1986. On interprocess communications, parts i and il. Dlstrlb. Comput. 1, 1 (Apr.), 77-101.
30
 
31
L~MPORT, L 1979. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Comput. C-28, 9 (Sept), 690.
32
33
 
34
Lb M., TROMP, J., AND Vn'~~h P.M. 1991. How to share concurrent wait-free variables. Tech. Rep. CT-91-02, Univ. of Amsterdam, Amsterdam, Netherlands, Mar.
 
35
36
37
38
 
39
PETERSON, G. L., AND BURNS, J.E. 1986. Concurrent reading whfie wnting il: The multi-writer case. Tech. Rep. GIT-ICS-86/26, GeorgSa Instltute of Technology, Dec.
40
41
 
42
43

CITED BY  72


REVIEW

"Hans J. Schneider : Reviewer"

A practical technique to implement shared data structures correctly is proposed. The author systematically transforms a sequential implementation that follows certain conventions into a lock-free or wait-free version. The proposal is suited fo  more...