On the Implementation of Concurrent Objects

The implementation of objects shared by concurrent processes, with provable safety and liveness guarantees, is a fundamental issue of concurrent programming in shared memory systems. It is now largely accepted that linearizability (or atomicity) is an appropriate consistency condition for concurrent...

Full description

Saved in:
Bibliographic Details
Published inDependable and Historic Computing pp. 453 - 478
Main Author Raynal, Michel
Format Book Chapter
LanguageEnglish
Published Berlin, Heidelberg Springer Berlin Heidelberg 2011
SeriesLecture Notes in Computer Science
Subjects
Online AccessGet full text
ISBN9783642245404
3642245404
ISSN0302-9743
1611-3349
DOI10.1007/978-3-642-24541-1_33

Cover

More Information
Summary:The implementation of objects shared by concurrent processes, with provable safety and liveness guarantees, is a fundamental issue of concurrent programming in shared memory systems. It is now largely accepted that linearizability (or atomicity) is an appropriate consistency condition for concurrent objects. On the liveness side, progress conditions (mainly absence of deadlock or the stronger absence of starvation) have been stated and investigated for a long time and are now well-mastered. The situation is different in asynchronous shared memory systems prone to process failures. This paper visits three progress conditions suited to concurrent objects in presence of failures, namely obstruction-freedom, non-blocking and wait-freedom. To that end, the paper also visits appropriate computation models and paradigm problems to illustrate this family of progress conditions. The paper has consequently an introductory and survey flavor. Its aim is to help people better understand the difficulties, subtleties and beauties encountered when one has to implement concurrent objects despite the net effect of asynchrony and failures.
ISBN:9783642245404
3642245404
ISSN:0302-9743
1611-3349
DOI:10.1007/978-3-642-24541-1_33