This preview shows pages 1–2. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: DCAS is not a Silver Bullet for Nonblocking Algorithm Design Simon Doherty David L. Detlefs Lindsay Groves Christine H. Flood Victor Luchangco Paul A. Martin Mark Moir Nir Shavit Guy L. Steele Jr. Victoria University of Wellington, PO Box 600, Wellington, New Zealand Sun Microsystems Laboratories, 1 Network Drive, Burlington, Massachusetts, USA ABSTRACT Despite years of research, the design of efficient nonblocking algorithms remains difficult. A key reason is that current shared-memory multiprocessor architectures support only single-location synchronisation primitives such as compare- and-swap (CAS) and load-linked/store-conditional (LL/SC). Recently researchers have investigated the utility of double- compare-and-swap (DCAS)a generalisation of CAS that supports atomic access to two memory locationsin over- coming these problems. We summarise recent research in this direction and present a detailed case study concern- ing a previously published nonblocking DCAS-based double- ended queue implementation. Our summary and case study clearly show that DCAS does not provide a silver bullet for nonblocking synchronisation. That is, it does not make the design and verification of even mundane nonblocking data structures with desirable properties easy. Therefore, our po- sition is that while slightly more powerful synchronisation primitives can have a profound effect on ease of algorithm design and verification, DCAS does not provide sufficient additional power over CAS to justify supporting it in hard- ware. Categories and Subject Descriptors D.1.3 [ Programming Techniques ]: Concurrent Program- ming; D.2.4 [ Software Engineering ]: Software/Program Verification; E.1 [ Data ]: Data Structures General Terms Algorithms, Design, Theory, Verification Keywords Multiprocessors, nonblocking synchronization, concurrent data structures, linked lists, lock-free, DCAS, double-compare- and-swap Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SPAA04, June 27-30, 2004, Barcelona, Spain. Copyright 2004 Sun Microsystems, Inc. All rights reserved. ACM 1-58113-840-7/04/0006 ... $ 5.00. 1. INTRODUCTION The traditional approach to designing concurrent algo- rithms and data structures is to use locks to protect data from corruption by concurrent updates. The use of locks en- ables algorithm designers to develop concurrent algorithms based closely on their sequential counterparts. However, several well-known problems are associated with the use of locks including deadlock, performance degradation in cases of high contention, and priority inversion ....
View Full Document
This note was uploaded on 07/30/2011 for the course COP 4810 taught by Professor Staff during the Spring '11 term at University of Central Florida.
- Spring '11
- Computer Science