UNIT I : INTRODUCTION Introduction : Definition –Relation to computer system components –Motivation –Relation to parallel systems – Message-passing systems versus shared memory systems –Primitives for distributed communication –Synchronous versus asynchronous executions –Design issues and challenges. A model of distributed computations: A distributed program –A model of distributed executions –Models of communication networks –Global state – Cuts –Past and future cones of an event –Models of process communications. Logical Time : A framework for a system of logical clocks –Scalar time –Vector time – Physical clock synchronization: NTP. (Chapter - 1) UNIT II : MESSAGE ORDERING AND SNAPSHOTS Message ordering and group communication : Message ordering paradigms –Asynchronous execution with synchronous communication –Synchronous program order on an asynchronous system –Group communication – Causal order (CO) - Total order. Global state and snapshot recording algorithms : Introduction –System model and definitions –Snapshot algorithms for FIFO channels. (Chapter - 2) UNIT III : DISTRIBUTED MUTEX AND DEADLOCK Distributed mutual exclusion algorithms : Introduction – Preliminaries – Lamport‘s algorithm – Ricart-Agrawala algorithm – Maekawa‘s algorithm – Suzuki–Kasami‘s broadcast algorithm. Deadlock detection in distributed systems: Introduction – System model – Preliminaries – Models of deadlocks – Knapp‘s classification – Algorithms for the single resource model, the AND model and the OR model. (Chapter - 3) UNIT IV : RECOVERY AND CONSENSUS Checkpointing and rollback recovery: Introduction – Background and definitions – Issues in failure recovery – Checkpoint-based recovery – Log-based rollback recovery – Coordinated checkpointing algorithm – Algorithm for asynchronous checkpointing and recovery. Consensus and agreement algorithms: UNIT V : P2P AND DISTRIBUTED SHARED MEMORY Peer-to-peer computing and overlay graphs: