|
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
|
Benny Chor , Amos Israeli , Ming Li, On processor coordination using asynchronous hardware, Proceedings of the sixth annual ACM Symposium on Principles of distributed computing, p.86-97, August 10-12, 1987, Vancouver, British Columbia, Canada
[doi> 10.1145/41840.41848]
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
James H. Anderson , Srikanth Ramamurthy , Rohit Jain, Implementing wait-free objects on priority-based systems, Proceedings of the sixteenth annual ACM symposium on Principles of distributed computing, p.229-238, August 21-24, 1997, Santa Barbara, California, United States
|
|
|
|
|
|
Ben Gamsa , Orran Krieger , Jonathan Appavoo , Michael Stumm, Tornado: maximizing locality and concurrency in a shared memory multiprocessor operating system, Proceedings of the third symposium on Operating systems design and implementation, p.87-100, February 1999, New Orleans, Louisiana, United States
|
|
|
Subodh Kumar , Chun-Fa Chang , Dinesh Manocha, Scalable parallel algorithms for interactive visualization of curved surfaces, Proceedings of the 1996 ACM/IEEE conference on Supercomputing (CDROM), p.7-es, January 01-01, 1996, Pittsburgh, Pennsylvania, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nir Shavit , Eli Upfal , Asaph Zemach, A wait-free sorting algorithm, Proceedings of the sixteenth annual ACM symposium on Principles of distributed computing, p.121-128, August 21-24, 1997, Santa Barbara, California, United States
|
|
|
|
|
|
Yehuda Afek , Dalia Dauber , Dan Touitou, Wait-free made fast, Proceedings of the twenty-seventh annual ACM symposium on Theory of computing, p.538-547, May 29-June 01, 1995, Las Vegas, Nevada, United States
|
|
|
Yehuda Afek , Michael Merritt , Gadi Taubenfeld , Dan Touitou, Disentangling multi-object operations (extended abstract), Proceedings of the sixteenth annual ACM symposium on Principles of distributed computing, p.111-120, August 21-24, 1997, Santa Barbara, California, United States
|
|
|
|
|
|
|
|
|
Maged M. Michael , Michael L. Scott, Simple, fast, and practical non-blocking and blocking concurrent queue algorithms, Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing, p.267-275, May 23-26, 1996, Philadelphia, Pennsylvania, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ole Agesen , David L. Detlefs , Christine H. Flood , Alexander T. Garthwaite , Paul A. Martin , Nir N. Shavit , Guy L. Steele, Jr., DCAS-based concurrent deques, Proceedings of the twelfth annual ACM symposium on Parallel algorithms and architectures, p.137-146, July 09-13, 2000, Bar Harbor, Maine, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Michael A. Bender , Martin Farach-Colton , Simai He , Bradley C. Kuszmaul , Charles E. Leiserson, Adversarial contention resolution for simple channels, Proceedings of the seventeenth annual ACM symposium on Parallelism in algorithms and architectures, July 18-20, 2005, Las Vegas, Nevada, USA
|
|
|
|
|
|
|
|
|
Jose P. G. Mahedero , Álvaro MartÍnez , Pedro Cano , Markus Koppenberger , Fabien Gouyon, Natural language processing of lyrics, Proceedings of the 13th annual ACM international conference on Multimedia, November 06-11, 2005, Hilton, Singapore
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Erich M. Nahum , David J. Yates , James F. Kurose , Don Towsley, Performance issues in parallelized network protocols, Proceedings of the 1st USENIX conference on Operating Systems Design and Implementation, p.10-es, November 14-17, 1994, Monterey, California
|
|
|
Ronald C. Unrau , Orran Krieger , Benjamin Gamsa , Michael Stumm, Experiences with locking in a NUMA multiprocessor operating system kernel, Proceedings of the 1st USENIX conference on Operating Systems Design and Implementation, p.11-es, November 14-17, 1994, Monterey, California
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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...
|