Table of Contents:
  • 1. Distributed computing
  • 1.1 Winds of change
  • 1.2 The internet
  • 1.3 Computers with multiple processors
  • 1.4 Synchronization
  • 1.5 Why is synchronization difficult?
  • 1.6 Algorithms and programs
  • 1.7 Concurrent and distributed algorithms
  • 1.8 Impossibility results
  • 1.9 Chapter notes
  • 10. Getting the service you deserve
  • 10.1 The two tellers problem
  • 10.2 Applications
  • 10.3 First attempt: a solution which cannot tolerate a single fault
  • 10.4 Second attempt: a correct solution
  • 10.5 How many notes are needed?
  • 10.6 Chapter notes
  • 10.7 Self review
  • 2. One loaf of bread, please
  • 2.1 The too much bread problem
  • 2.2 Applications
  • 2.3 First attempt
  • 2.4 Second attempt
  • 2.5 Third attempt
  • 2.6 Fourth attempt: a correct solution
  • 2.7 Communicating by reading and writing of notes
  • 2.8 Chapter notes
  • 2.9 Self review
  • 3. A tale of two lovers
  • 3.1 The two lovers problem
  • 3.2 Applications
  • 3.3 A surprising impossibility result
  • 3.4 further explanations
  • 3.5 Chapter notes
  • 3.6 Self review
  • 4. A night at the movies
  • 4.1 The movie agreement problem
  • 4.2 Applications
  • 4.3 A surprising impossibility result
  • 4.4 A more general result
  • 4.5 An algorithm
  • 4.6 Further explanations
  • 4.7 How many rounds are needed?
  • 4.8 Chapter notes
  • 4.9 Self review
  • 5. The fall of the Byzantine Empire
  • 5.1 The Byzantine generals problem
  • 5.2 Applications
  • 5.3 A surprising result
  • 5.4 An algorithm
  • 5.5 Further explanations
  • 5.6 Chapter notes
  • 5.7 Self review
  • 6. Sightseeing in Paris
  • 6.1 The choice coordination problem
  • 6.2 Applications
  • 6.3 A randomized algorithm
  • 6.4 Further explanations
  • 6.5 A simple deterministic algorithm
  • 6.6 Perfectionism, it seems, does not pay!
  • 6.7 Chapter notes
  • 6.8 Self review
  • 7. Food for thought
  • 7.1 The dining philosophers problem
  • 7.2 Applications
  • 7.3 Deadlock prevention: the total order technique
  • 7.4 Hold and wait strategy: the LR algorithm
  • 7.5 Hold and wait strategy: the LLR algorithm
  • 7.6 Wait and release strategy: the wait/release algorithm
  • 7.7 Wait and release strategy: a randomized algorithm
  • 7.8 Chapter notes
  • 7.9 Self review
  • 8. All for one and one for all
  • 8.1 The see-saw puzzle
  • 8.2 Applications
  • 8.3 The kids' first plan
  • 8.4 The kids' second plan
  • 8.5 The kids' final plan
  • 8.6 Further explanations
  • 8.7 Chapter notes
  • 8.8 Self review
  • 9. The world is a playground
  • 9.1 The green-or-blue game
  • 9.2 Applications
  • 9.3 Two observations
  • 9.4 The kids' plan
  • 9.5 Further explanations
  • 9.6 An alternative plan
  • 9.7 The queen's new challenge
  • 9.8 A surprising impossibility result
  • 9.9 The queen's final challenge
  • 9.10 General impossibility results
  • 9.11 Chapter notes
  • 9.12 Self review
  • Bibliography
  • Author's biography
  • Index.