ACM Home Page
Please provide us with feedback. Feedback
Two-handed emulation: how to build non-blocking implementations of complex data-structures using DCAS
Full text PdfPdf (926 KB)
Source Annual ACM Symposium on Principles of Distributed Computing archive
Proceedings of the twenty-first annual symposium on Principles of distributed computing table of contents
Monterey, California
SESSION: Session 9 table of contents
Pages: 260 - 269  
Year of Publication: 2002
ISBN:1-58113-485-1
Author
Michael Greenwald  University of Pennsylvania, Philadelphia, PA
Sponsors
SIGOPS: ACM Special Interest Group on Operating Systems
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 1,   Downloads (12 Months): 27,   Citation Count: 6
Additional Information:

abstract   references   cited by   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/571825.571874
What is a DOI?

ABSTRACT

This paper partly addresses the question of whether, in principle, there is any point in adding richer hardware synchronization primitives when the existing set is "universal", and therefore sufficient to synchronize any data structure in a non-blocking manner. The context of this paper is the ongoing investigation of the utility of adding a DCAS instruction to modern processors to aid the design and performance of non-blocking algorithms. We add one more piece of evidence in support of this instruction.In particular, we demonstrate that DCAS is sufficient to enable a technique called "two-handed emulation" which yields efficient and understandable implementations of a class of data structures. We present a non-blocking implementation of a doubly-linked list to show the basic technique. We describe a non-blocking implementation of a dynamically resizable hash-table to illustrate how the technique is amenable to optimizations that improve performance and increase concurrency.


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
 
5
 
6
 
7
8
9
 
10
11
 
12
13
14
 
15
Prince Kohli, Gil Neiger, and Mustaque Ahamad. A characterization of scalable shared memories. In Proceedings of the 1993 International Conference on Parallel Processing, volume I - Architecture, pages 332-334, Boca Raton, FL, 1993. CRC Press.
 
16
David M. Koppelman. Version L3.11 Proteus Changes. Louisiana State University, Baton Rouge, August 1997. ftp://ftp.ee.lsu.edu/pub/koppel/proteus/proteusl.pdf.
17
18
 
19
 
20
R.K.Treiber. Systems programming: Coping with parallelism. Technical Report RJ5118, IBM Almaden Research Center, April 1986.