For courses on Distributed Systems, Distributed Operating Systems, and Advanced Operating Systems focusing on distributed systems found in departments of Computer Science, Computer Engineering and Electrical Engineering. Distributed systems are common. Computer scientists and engineers need to understand how the principles and paradigms underlying distributed systems software and be familiar with several real world examples. No other book systematically examines the underlying principles and how they are applied to a wide variety of distributed systems with the depth and clarity of this presentation.