Concurrent Programming: Algorithms, Principles, and Foundations

Algorithms, Principles, and Foundations

  • Michel┬áRaynal

Table of contents

  1. Front Matter
    Pages i-xxxii
  2. Lock-Based Synchronization

    1. Front Matter
      Pages 1-1
    2. Michel Raynal
      Pages 3-13
    3. Michel Raynal
      Pages 15-60
    4. Michel Raynal
      Pages 61-109
  3. On the Foundations Side: The Atomicity Concept

    1. Front Matter
      Pages 111-111
    2. Michel Raynal
      Pages 113-132
  4. Mutex-Free Synchronization

    1. Front Matter
      Pages 133-133
    2. Michel Raynal
      Pages 135-164
    3. Michel Raynal
      Pages 165-187
  5. The Transactional Memory Approach

    1. Front Matter
      Pages 275-275
    2. Michel Raynal
      Pages 277-301
  6. On the Foundations Side: From Safe Bits to Atomic Registers

    1. Front Matter
      Pages 303-303
  7. On the Foundations Side: The Computability Power of Concurrent Objects (Consensus)

    1. Front Matter
      Pages 369-369

About this book

Introduction

The advent of new architectures and computing platforms means that synchronization and concurrent computing are among the most important topics in computing science. Concurrent programs are made up of cooperating entities -- processors, processes, agents, peers, sensors -- and synchronization is the set of concepts, rules and mechanisms that allow them to coordinate their local computations in order to realize a common task. This book is devoted to the most difficult part of concurrent programming, namely synchronization concepts, techniques and principles when the cooperating entities are asynchronous, communicate through a shared memory, and may experience failures. Synchronization is no longer a set of tricks but, due to research results in recent decades, it relies today on sane scientific foundations as explained in this book.

In this book the author explains synchronization and the implementation of concurrent objects, presenting in a uniform and comprehensive way the major theoretical and practical results of the past 30 years. Among the key features of the book are a new look at lock-based synchronization (mutual exclusion, semaphores, monitors, path expressions); an introduction to the atomicity consistency criterion and its properties and a specific chapter on transactional memory; an introduction to mutex-freedom and associated progress conditions such as obstruction-freedom and wait-freedom; a presentation of Lamport's hierarchy of safe, regular and atomic registers and associated wait-free constructions; a description of numerous wait-free constructions of concurrent objects (queues, stacks, weak counters, snapshot objects, renaming objects, etc.); a presentation of the computability power of concurrent objects including the notions of universal construction, consensus number and the associated Herlihy's hierarchy; and a survey of failure detector-based constructions of consensus objects.

The book is suitable for advanced undergraduate students and graduate students in computer science or computer engineering, graduate students in mathematics interested in the foundations of process synchronization, and practitioners and engineers who need to produce correct concurrent software. The reader should have a basic knowledge of algorithms and operating systems.

Keywords

atomicity concurrency concurrent programming consensus distributed computing distributed systems multicore mutual exclusion operating systems parallel programming synchronization transactional memory

Authors and affiliations

  • Michel┬áRaynal
    • 1
  1. 1., IRISA-ISTICInstitut Universitaire de FranceRennes CedexFrance

Bibliographic information

  • DOI https://doi.org/10.1007/978-3-642-32027-9
  • Copyright Information Springer-Verlag Berlin Heidelberg 2013
  • Publisher Name Springer, Berlin, Heidelberg
  • eBook Packages Computer Science
  • Print ISBN 978-3-642-32026-2
  • Online ISBN 978-3-642-32027-9
  • About this book
Industry Sectors
Electronics
Telecommunications
Biotechnology