Lock‐Free Concurrent Data Structures

Concurrent data structures are the data sharing side of parallel programming. An implementation of a data structure is called lock‐free, if it allows multiple processes/ threads to access the data structure concurrently and also guarantees that at least one operation among those finishes in a finite...

Full description

Saved in:
Bibliographic Details
Published inProgramming multi‐core and many‐core computing systems pp. 59 - 79
Main Authors Cederman, Daniel, Gidenstam, Anders, Ha, Phuong, Sundell, Hkan, Papatriantafilou, Marina, Tsigas, Philippas
Format Book Chapter
LanguageEnglish
Published Hoboken, NJ, USA John Wiley & Sons, Inc 24.01.2017
Subjects
Online AccessGet full text
ISBN0470936908
9780470936900
DOI10.1002/9781119332015.ch3

Cover

More Information
Summary:Concurrent data structures are the data sharing side of parallel programming. An implementation of a data structure is called lock‐free, if it allows multiple processes/ threads to access the data structure concurrently and also guarantees that at least one operation among those finishes in a finite number of its own steps regardless of the state of the other operations. This chapter provides a sufficient background and intuition to help the interested reader to navigate in the complex research area of lock‐free data structures. It offers the programmer familiarity to the subject that allows using truly concurrent methods. The chapter discusses the fundamental synchronization primitives on which efficient lock‐free data structures rely. It discusses the problem of managing dynamically allocated memory in lock‐free concurrent data structures and general concurrent environments. The idiosyncratic architectural features of graphics processors that is important to consider when designing efficient lock‐free concurrent data structures for this emerging area.
ISBN:0470936908
9780470936900
DOI:10.1002/9781119332015.ch3