Distributed algorithms have been the subject of intense development over the last twenty years. The second edition of this successful textbook provides an up-to-date introduction both to the topic, and to the theory behind the algorithms. The clear presentation makes the book suitable for advanced undergraduate or graduate courses, whilst the coverage is sufficiently deep to make it useful for practising engineers and researchers. The author concentrates on algorithms for the point-to-point message passing model, and includes algorithms for the implementation of computer communication networks. Other key areas discussed are algorithms for the control of distributed applications (wave, broadcast, election, termination detection, randomized algorithms for anonymous networks, snapshots, deadlock detection, synchronous systems), and fault-tolerance achievable by distributed algorithms. The two new chapters on sense of direction and failure detectors are state-of-the-art and will provide an entry to research in these still-developing topics.
Preface; 1. Introduction: distributed systems; Part I. Protocols: 2. The model; 3. Communication protocols; 4. Routing algorithms; 5. Deadlock-free packet switching; Part II. Fundamental Algorithms: 6. Wave and traversal algorithms; 7. Election algorithms; 8. Termination detection; 9. Anonymous networks; 10. Snapshots; 11. Sense of direction and orientation; 12. Synchrony in networks; Part III. Fault Tolerance: 13. Fault tolerance in distributed systems; 14. Fault tolerance in asynchronous systems; 15. Fault tolerance in synchronous systems; 16. Failure detection; 17. Stabilization; Part IV. Appendix A: pseudocode conventions; Appendix B: graphs and networks; References; Index.