Back to Search Start Over

Progress Guarantees When Composing Lock-Free Objects

Authors :
Philippas Tsigas
Nhan Nguyen Dang
Source :
Euro-Par 2011 Parallel Processing ISBN: 9783642233968, Euro-Par (2)
Publication Year :
2011
Publisher :
Springer Berlin Heidelberg, 2011.

Abstract

Highly concurrent and reliable data objects are vital for parallel programming. Lock-free shared data objects are highly concurrent and guarantee that at least one operation, from a set of concurrently executed operations, finishes after a finite number of steps regardless of the state of the other operations. Lock-free data objects provide progress guarantees on the object level. In this paper, we first examine the progress guarantees provided by lock-free shared data objects that have been constructed by composing other lock-free data objects. We observe that although lock-free data objects are composable when it comes to linearizability, when it comes to progress guarantees they are not. More specifically we show that when a lock-free data object is used as a component (is shared) by two or more lock-free data objects concurrently, these objects can no longer guarantee lock-free progress. This makes it impossible for programmers to directly compose lock-free data objects and guarantee lock-freedom. To help programmability in concurrent settings, this paper presents a new synchronization mechanism for composing lock-free data objects. The proposed synchronization mechanism provides an interface to be used when calling a lock-free object from other lock-free objects, and guarantees lock-free progress for every object constructed. An experimental evaluation of the performance cost that the new mechanism introduces, as expected, for providing progress guarantees is also presented.

Details

ISBN :
978-3-642-23396-8
ISBNs :
9783642233968
Database :
OpenAIRE
Journal :
Euro-Par 2011 Parallel Processing ISBN: 9783642233968, Euro-Par (2)
Accession number :
edsair.doi.dedup.....8aadfa9a5d5cb7042fe9fac7b0a2486c