|
ABSTRACT
Nonblocking algorithms for concurrent data structures guarantee that a data structure is always accessible. This is in contrast to blocking algorithms in which a slow or halted process can render part or all of the data structure inaccessible to other processes.
This paper proposes a technique that can convert most existing lock-based blocking data structure algorithms into nonblocking algorithms with the same functionality. Our instruction-by-instruction transformation can be applied to any algorithm having the following properties:
- •Interprocess synchronization is established solely through the use of locks.
- •There is no possiblity of deadlock (e.g. because of a well-ordering among the lock requests).
In contrast to a previous work, our transformation requires only a constant amount of overhead per operation and, in the absence of failures, it incurs no penalty in the amount of concurrency that was available in the original data structure.
The techniques in this paper may obviate the need for a wholesale reinvention of techniques for nonblocking concurrent data structure algorithms.
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.
| |
BS77
|
Bayer, M. and Scholnick. Concurrency of Operations on B-Trees. Acta Informatica, 9:1-21, 1977.
|
| |
CBDW91
|
A. Colbrook, E.A. Brewer, C.N. Dellarocas, and W.E. Weihl. An algorithm for concurrent search trees.In Proceedzngs of the #Oth International Conference on Parallel Processing, pages III138-III141, 1991.
|
 |
Her88
|
|
| |
IBM83
|
IBM. IBM 370 Pmnc#ples of Operation, May 1983. Publication GA22-7000.
|
 |
JS90
|
|
 |
KL80
|
|
 |
LS81
|
|
| |
PLJ91
|
Prakash, S., Y. H. Lee, and T. Johnson. A Non-Blocking Algorithm for Shared Queues Using Compare-and-Swap. In Internatzonal Conference on Parallel Processing, 1991.
|
 |
Plo89
|
|
 |
SC91
|
|
 |
SG88
|
|
| |
Sto90
|
|
| |
Ten81
|
|
| |
WW90
|
W.E. Weihl and P. Wang. Multi-version memory: Software cache management for concurrent B-trees. In Proceedsngs of the 2nd IEEE Sympossum on Parallel and Dsstmbuted Process,ng, pages 650-655, 1990.
|
CITED BY 26
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
Maurice Herlihy , Victor Luchangco , Mark Moir , William N. Scherer, III, Software transactional memory for dynamic-sized data structures, Proceedings of the twenty-second annual symposium on Principles of distributed computing, p.92-101, July 13-16, 2003, Boston, Massachusetts
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Virendra J. Marathe , William N. Scherer , Michael L. Scott, Design tradeoffs in modern software transactional memory systems, Proceedings of the 7th workshop on Workshop on languages, compilers, and run-time support for scalable systems, p.1-7, October 22-23, 2004, Houston, Texas
|
|
|
|
|
|
|
|
|
|
|
|
Philip Bohannon , Daniel Lieuwen , Rajeev Rastogi , Avi Silberschatz , S. Seshadri , S. Sudarshan, The Architecture of the Dalí Main-Memory Storage Manager, Multimedia Tools and Applications, v.4 n.2, p.115-151, March 1997
|
|
|
|
|