Concurrent Programming: Algorithms, Principles, and Foundations
- 10h 31m
- Michel Raynal
- Springer
- 2013
- Among the first books on modern synchronization, a fundamental topic of computer science with the advent of multicore architectures and transactional memory
- Author among the leading researchers in the area of distributed computing
- Textbook features include summaries, keywords, bibliographic notes and exercises for each chapter
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.
About the Author
Prof. Michel Raynal is among the top researchers in the world on the topic of distributed algorithms. He is a full professor at the Université de Rennes where he founded the Distributed Algorithms research group in 1984. He has been the principal investigator in numerous related research national and international projects, and he has been invited by more than 25 universities around the world to give lectures on distributed algorithms and distributed computing. He has over 300 academic publications on this topic, and has authored a number of books on related topics. His current research interests include distributed algorithms, distributed computing systems, distributed computability and dependability; and the fundamental principles that underlie the design and the construction of distributed computing systems.
In this Book
-
Notation
-
The Mutual Exclusion Problem
-
Solving Mutual Exclusion
-
Lock-Based Concurrent Objects
-
Atomicity—Formal Definition and Properties
-
Mutex-Free Concurrent Objects
-
Hybrid Concurrent Objects
-
Wait-Free Objects from Read/Write Registers Only
-
Snapshot Objects from Read/Write Registers Only
-
Renaming Objects from Read/Write Registers Only
-
Transactional Memory
-
Safe, Regular, and Atomic Read/Write Registers
-
From Safe Bits to Atomic Bits—Lower Bound and Optimal Construction
-
Bounded Constructions of Atomic b-Valued Registers
-
Universality of Consensus
-
The Case of Unreliable Base Objects
-
Consensus Numbers and the Consensus Hierarchy
-
The Alpha(s) and Omega of Consensus—Failure Detector-Based Consensus
-
Afterword
-
Bibliography