Warehouse Stock Clearance Sale

Grab a bargain today!


Sign Up for Fishpond's Best Deals Delivered to You Every Day
Go
Principles of Concurrent ­and Distributed Programming
Algorithms and Models

Rating
44 Ratings by Goodreads
Already own it? Write a review
Format
Paperback, 384 pages
Published
United States, 29 November 2005


Principles of Concurrent and Distributed Programming provides an introduction to concurrent programming focusing on general principles and not on specific systems.



Software today is inherently concurrent or distributed - from event-based GUI designs to operating and real-time systems to Internet applications. The new edition of this classic introduction to concurrency has been completely revised in view of the growing importance of concurrency constructs embedded in programming languages and of formal methods such as model checking that are widely used in industry.



Contents



Preface xi



1 What is Concurrent Programming? 1


1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1


1.2 Concurrency as abstract parallelism . . . . . . . . . . . . . . . . 2


1.3 Multitasking . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4


1.4 The terminology of concurrency . . . . . . . . . . . . . . . . . 4


1.5 Multiple computers . . . . . . . . . . . . . . . . . . . . . . . . 5


1.6 The challenge of concurrent programming . . . . . . . . . . . . 5



2 The Concurrent Programming Abstraction 7


2.1 The role of abstraction . . . . . . . . . . . . . . . . . . . . . . . 7


2.2 Concurrent execution as interleaving of atomic statements . . . . 8


2.3 Justification of the abstraction . . . . . . . . . . . . . . . . . . . 13


2.4 Arbitrary interleaving . . . . . . . . . . . . . . . . . . . . . . . 17


2.5 Atomic statements . . . . . . . . . . . . . . . . . . . . . . . . . 19


2.6 Correctness . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21


2.7 Fairness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23


2.8 Machine-code instructions . . . . . . . . . . . . . . . . . . . . . 24


2.9 Volatile and non-atomic variables . . . . . . . . . . . . . . . . . 28


2.10 The BACI concurrency simulator . . . . . . . . . . . . . . . . . 29


2.11 Concurrency in Ada . . . . . . . . . . . . . . . . . . . . . . . . 31


2.12 Concurrency in Java . . . . . . . . . . . . . . . . . . . . . . . . 34


2.13 Writing concurrent programs in Promela . . . . . . . . . . . . . 36


2.14 Supplement: the state diagram for the frog puzzle . . . . . . . . 37



3 The Critical Section Problem 45


3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45


3.2 The definition of the problem . . . . . . . . . . . . . . . . . . . 45


3.3 First attempt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48


3.4 Proving correctness with state diagrams . . . . . . . . . . . . . . 49


3.5 Correctness of the first attempt . . . . . . . . . . . . . . . . . . 53


3.6 Second attempt . . . . . . . . . . . . . . . . . . . . . . . . . . . 55


3.7 Third attempt . . . . . . . . . . . . . . . . . . . . . . . . . . . 57


3.8 Fourth attempt . . . . . . . . . . . . . . . . . . . . . . . . . . . 58


3.9 Dekker's algorithm . . . . . . . . . . . . . . . . . . . . . . . . 60


3.10 Complex atomic statements . . . . . . . . . . . . . . . . . . . . 61



4 Verification of Concurrent Programs 67


4.1 Logical specification of correctness properties . . . . . . . . . . 68


4.2 Inductive proofs of invariants . . . . . . . . . . . . . . . . . . . 69


4.3 Basic concepts of temporal logic . . . . . . . . . . . . . . . . . 72


4.4 Advanced concepts of temporal logic . . . . . . . . . . . . . . . 75


4.5 A deductive proof of Dekker's algorithm . . . . . . . . . . . . . 79


4.6 Model checking . . . . . . . . . . . . . . . . . . . . . . . . . . 83


4.7 Spin and the Promela modeling language . . . . . . . . . . . . . 83


4.8 Correctness specifications in Spin . . . . . . . . . . . . . . . . . 86


4.9 Choosing a verification technique . . . . . . . . . . . . . . . . . 88



5 Advanced Algorithms for the Critical Section Problem 93


5.1 The bakery algorithm . . . . . . . . . . . . . . . . . . . . . . . 93


5.2 The bakery algorithm for N processes . . . . . . . . . . . . . . 95


5.3 Less restrictive models of concurrency . . . . . . . . . . . . . . 96


5.4 Fast algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . 97


5.5 Implementations in Promela . . . . . . . . . . . . . . . . . . . . 104

Show more

This item is no longer available.

Product Description


Principles of Concurrent and Distributed Programming provides an introduction to concurrent programming focusing on general principles and not on specific systems.



Software today is inherently concurrent or distributed - from event-based GUI designs to operating and real-time systems to Internet applications. The new edition of this classic introduction to concurrency has been completely revised in view of the growing importance of concurrency constructs embedded in programming languages and of formal methods such as model checking that are widely used in industry.



Contents



Preface xi



1 What is Concurrent Programming? 1


1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1


1.2 Concurrency as abstract parallelism . . . . . . . . . . . . . . . . 2


1.3 Multitasking . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4


1.4 The terminology of concurrency . . . . . . . . . . . . . . . . . 4


1.5 Multiple computers . . . . . . . . . . . . . . . . . . . . . . . . 5


1.6 The challenge of concurrent programming . . . . . . . . . . . . 5



2 The Concurrent Programming Abstraction 7


2.1 The role of abstraction . . . . . . . . . . . . . . . . . . . . . . . 7


2.2 Concurrent execution as interleaving of atomic statements . . . . 8


2.3 Justification of the abstraction . . . . . . . . . . . . . . . . . . . 13


2.4 Arbitrary interleaving . . . . . . . . . . . . . . . . . . . . . . . 17


2.5 Atomic statements . . . . . . . . . . . . . . . . . . . . . . . . . 19


2.6 Correctness . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21


2.7 Fairness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23


2.8 Machine-code instructions . . . . . . . . . . . . . . . . . . . . . 24


2.9 Volatile and non-atomic variables . . . . . . . . . . . . . . . . . 28


2.10 The BACI concurrency simulator . . . . . . . . . . . . . . . . . 29


2.11 Concurrency in Ada . . . . . . . . . . . . . . . . . . . . . . . . 31


2.12 Concurrency in Java . . . . . . . . . . . . . . . . . . . . . . . . 34


2.13 Writing concurrent programs in Promela . . . . . . . . . . . . . 36


2.14 Supplement: the state diagram for the frog puzzle . . . . . . . . 37



3 The Critical Section Problem 45


3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45


3.2 The definition of the problem . . . . . . . . . . . . . . . . . . . 45


3.3 First attempt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48


3.4 Proving correctness with state diagrams . . . . . . . . . . . . . . 49


3.5 Correctness of the first attempt . . . . . . . . . . . . . . . . . . 53


3.6 Second attempt . . . . . . . . . . . . . . . . . . . . . . . . . . . 55


3.7 Third attempt . . . . . . . . . . . . . . . . . . . . . . . . . . . 57


3.8 Fourth attempt . . . . . . . . . . . . . . . . . . . . . . . . . . . 58


3.9 Dekker's algorithm . . . . . . . . . . . . . . . . . . . . . . . . 60


3.10 Complex atomic statements . . . . . . . . . . . . . . . . . . . . 61



4 Verification of Concurrent Programs 67


4.1 Logical specification of correctness properties . . . . . . . . . . 68


4.2 Inductive proofs of invariants . . . . . . . . . . . . . . . . . . . 69


4.3 Basic concepts of temporal logic . . . . . . . . . . . . . . . . . 72


4.4 Advanced concepts of temporal logic . . . . . . . . . . . . . . . 75


4.5 A deductive proof of Dekker's algorithm . . . . . . . . . . . . . 79


4.6 Model checking . . . . . . . . . . . . . . . . . . . . . . . . . . 83


4.7 Spin and the Promela modeling language . . . . . . . . . . . . . 83


4.8 Correctness specifications in Spin . . . . . . . . . . . . . . . . . 86


4.9 Choosing a verification technique . . . . . . . . . . . . . . . . . 88



5 Advanced Algorithms for the Critical Section Problem 93


5.1 The bakery algorithm . . . . . . . . . . . . . . . . . . . . . . . 93


5.2 The bakery algorithm for N processes . . . . . . . . . . . . . . 95


5.3 Less restrictive models of concurrency . . . . . . . . . . . . . . 96


5.4 Fast algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . 97


5.5 Implementations in Promela . . . . . . . . . . . . . . . . . . . . 104

Show more
Product Details
EAN
9780321312839
ISBN
032131283X
Other Information
Illustrated
Dimensions
23.3 x 17.2 x 1.9 centimeters (0.50 kg)

Table of Contents

  • 1 What is Concurrent Programming?
  • 2 The Concurrent Programming Abstraction
  • 3 The Critical Section Problem
  • 4 Verification of Concurrent Programs
  • 5 Advanced Algorithms for the Critical Section Problem
  • 6 Semaphores
  • 7 Monitors
  • 8 Channels
  • 9 Spaces
  • 10 Distributed Algorithms
  • 11 Global Properties
  • 12 Consensus
  • 13 Real-Time Systems
  • A The Pseudocode Notation
  • B Review of Mathematical Logic
  • C Concurrent Programming Problems
  • D Software Tools
  • E Further Reading
  • Bibliography
  • Index

Promotional Information

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.

About the Author

Mordechai (Moti) Ben-Ari is an Associate Professor in the Department of Science Teaching at the Weizmann Institute of Science in Rehovot, Israel.  He is the author of texts on Ada, concurrent programming, programming languages, and mathematical logic, as well as Just a Theory: Exploring the Nature of Science.  In 2004 he was honored with the ACM/SIGCSE Award for Outstanding Contribution to Computer Science Education.

Show more
Review this Product
Ask a Question About this Product More...
 
Look for similar items by category
People also searched for
This title is unavailable for purchase as none of our regular suppliers have stock available. If you are the publisher, author or distributor for this item, please visit this link.

Back to top
We use essential and some optional cookies to provide you the best shopping experience. Visit our cookies policy page for more information.