Book description
The latest edition of a classic text on concurrency and distributed programming – from a winner of the ACM/SIGCSE Award for Outstanding Contribution to Computer Science Education.
Table of contents
- Copyright
- Preface
- 1. What is Concurrent Programming?
-
2. The Concurrent Programming Abstraction
- 2.1. The Role of Abstraction
- 2.2. Concurrent Execution as Interleaving of Atomic Statements
- 2.3. Justification of the Abstraction
- 2.4. Arbitrary Interleaving
- 2.5. Atomic Statements
- 2.6. Correctness
- 2.7. Fairness
- 2.8. Machine-Code InstructionsA
- 2.9. Volatile and Non-Atomic VariablesA
- 2.10. The BACI Concurrency SimulatorL
- 2.11. Concurrency in AdaL
- 2.12. Concurrency in JavaL
- 2.13. Writing Concurrent Programs in PromelaL
- 2.14. Supplement: The State Diagram for the Frog Puzzle
- 3. The Critical Section Problem
-
4. Verification of Concurrent Programs
- 4.1. Logical Specification of Correctness Properties
- 4.2. Inductive Proofs of Invariants
- 4.3. Basic Concepts of Temporal Logic
- 4.4. Advanced Concepts of Temporal LogicA
- 4.5. A Deductive Proof of Dekker’s AlgorithmA
- 4.6. Model Checking
- 4.7. Spin and the Promela Modeling LanguageL
- 4.8. Correctness Specifications in SpinL
- 4.9. Choosing a Verification TechniqueA
- 5. Advanced Algorithms for the Critical Section ProblemA
-
6. Semaphores
- 6.1. Process States
- 6.2. Definition of the Semaphore Type
- 6.3. The Critical Section Problem for Two Processes
- 6.4. Semaphore Invariants
- 6.5. The Critical Section Problem for N Processes
- 6.6. Order of Execution Problems
- 6.7. The Producer–Consumer Problem
- 6.8. Definitions of Semaphores
- 6.9. The Problem of the Dining Philosophers
- 6.10. Barz’s Simulation of General SemaphoresA
- 6.11. Udding’s Starvation-Free AlgorithmA
- 6.12. Semaphores in BACIL
- 6.13. Semaphores in AdaL
- 6.14. Semaphores in JavaL
- 6.15. Semaphores in PromelaL
-
7. Monitors
- 7.1. Introduction
- 7.2. Declaring and Using Monitors
- 7.3. Condition Variables
- 7.4. The Producer–Consumer Problem
- 7.5. The Immediate Resumption Requirement
- 7.6. The Problem of the Readers and Writers
- 7.7. Correctness of the Readers and Writers AlgorithmA
- 7.8. A Monitor Solution for the Dining Philosophers
- 7.9. Monitors in BACIL
- 7.10. Protected Objects
- 7.11. Monitors in JavaL
- 7.12. Simulating Monitors in PromelaL
- 8. Channels
- 9. Spaces
- 10. Distributed Algorithms
- 11. Global Properties
-
12. Consensus
- 12.1. Introduction
- 12.2. The Problem Statement
- 12.3. A One-Round Algorithm
- 12.4. The Byzantine Generals Algorithm
- 12.5. Crash Failures
- 12.6. Knowledge Trees
- 12.7. Byzantine Failures with Three Generals
- 12.8. Byzantine Failures with Four Generals
- 12.9. The Flooding Algorithm
- 12.10. The King Algorithm
- 12.11. Impossibility with Three GeneralsA
-
13. Real-Time Systems
- 13.1. Introduction
- 13.2. Definitions
- 13.3. Reliability and Repeatability
- 13.4. Synchronous Systems
- 13.5. Asynchronous Systems
- 13.6. Interrupt-Driven Systems
- 13.7. Priority Inversion and Priority Inheritance
- 13.8. The Mars Pathfinder in SpinL
- 13.9. Simpson’s Four-Slot AlgorithmA
- 13.10. The Ravenscar ProfileL
- 13.11. UPPAALL
- 13.12. Scheduling Algorithms for Real-Time Systems
- A. The Pseudocode Notation
- B. Review of Mathematical Logic
- C. Concurrent Programming Problems
- D. Software Tools
- E. Further Reading
- Bibliography
Product information
- Title: Principles of Concurrent and Distributed Programming, Second Edition
- Author(s):
- Release date: February 2006
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780321312839
You might also like
book
Functional and Concurrent Programming: Core Concepts and Features
Leverage Modern Language Constructs to Write High-Quality Code Faster The functional and concurrent programming language features …
book
C++ Concurrency in Action, Second Edition
This bestseller has been updated and revised to cover all the latest changes to C++ 14 …
book
Introduction to Concurrency in Programming Languages
Illustrating the effect of concurrency on programs written in familiar languages, this text focuses on novel …
book
Distributed Systems, 2nd Edition
This pivotal book provides a highly accessible, balanced treatment of the underlying theory and practical applications …