Shows students, programmers, system designers and researchers how to design, implement, and analyze distributed algorithms. Familiarizes readers with the most important problems, algorithms, and impossibility results in the area.
Provides the basic mathematical tools for designing new algorithms and proving new impossibility results. Teaches how to reason carefully about distributed algorithms–to model them formally, devise precise specifications for their required behavior, prove their correctness, and evaluate their performance with realistic measures.
Features:
* The most significant algorithms and impossibility results in the area, all in a simple automata-theoretic setting.
* The algorithms are proved correct, and their complexity analyzed according to precisely-defined complexity measures.
* The problems covered include resource allocation, communication, consensus among distributed processors, data consistency, deadlock detection, leader election, global snapshots, and many others.
The material is organized according to the system model — first, according to the timing model, and then, by the interprocess communication mechanism. The material on system models is isolated into separate chapters for easy reference.