Open AccessBook
Concurrent Programming: Algorithms, Principles, and Foundations
Michel Raynal
- 02 Jan 2013
224
TL;DR: 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.
read more
Abstract: 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.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
•Journal Article
A Lazy Snapshot Algorithm with Eager Validation
TL;DR: This paper formally introduces a lazy snapshot algorithm that verifies at each object access that the view observed by a transaction is consistent and demonstrates that the performance is quite competitive by comparing other STMs with an STM that uses the algorithm.
222
Signature-free asynchronous byzantine consensus with t
Achour Mostefaoui,Hamouma Moumen,Michel Raynal +2 more
- 15 Jul 2014
TL;DR: This paper presents a new round-based asynchronous consensus algorithm that copes with up to t
Signature-Free Asynchronous Binary Byzantine Consensus with t
TL;DR: This article is on broadcast and agreement in asynchronous message-passing systems made up of n processes, and where up to t processes may have a Byzantine Behavior, a powerful, yet simple, all-to-all broadcast communication abstraction suited to binary values.
•Posted Content
Demystifying Graph Databases: Analysis and Taxonomy of Data Organization, System Designs, and Graph Queries.
Maciej Besta,Emanuel Peter,Robert Gerstenberger,Marc Fischer,Michal Podstawski,Claude Barthels,Gustavo Alonso,Torsten Hoefler +7 more
TL;DR: This work presents the first survey and taxonomy of graph database systems, identifying and analyzing fundamental categories of these systems, and outlines graph database queries and relationships with associated domains (NoSQL stores, graph streaming, and dynamic graph algorithms).
References
A hierarchical CLH queue lock
Victor Luchangco,Dan Nussbaum,Nir Shavit +2 more
- 28 Aug 2006
TL;DR: In a set of microbenchmarks run on a large scale multiprocessor machine and a state-of-the-art multi-threaded multi-core chip, the HLCH algorithm exhibits better performance and significantly better fairness than the hierarchical backoff locks of Radovic and Hagersten.