Distributed Systems Notes
1. Introduction to Distributed Systems
• A distributed system is a collection of independent computers that appears as a single system
to users.
• Key goals: Resource sharing, scalability, transparency, and fault tolerance.
2. Characteristics
• Concurrency
• Scalability
• Fault Tolerance
• Transparency (Access, Location, Replication, Failure, Concurrency)
3. Types of Distributed Systems
• Client-Server Systems
• Peer-to-Peer Systems
• Distributed Databases
• Cloud-Based Systems
4. Communication Methods
• Message Passing
• Remote Procedure Call (RPC)
• Remote Method Invocation (RMI)
5. Time and Synchronization
• No global clock in distributed systems.
• Logical Clocks (Lamport Timestamps, Vector Clocks)
• Clock Synchronization Algorithms (Cristian’s, Berkeley, NTP)
6. Mutual Exclusion
• Ensures one process accesses shared resource at a time.
• Algorithms: Lamport’s Algorithm, Ricart-Agrawala, Token Ring.
7. Deadlocks
• Occurs when processes wait indefinitely for resources.
• Conditions: Mutual Exclusion, Hold and Wait, No Preemption, Circular Wait.
8. Consistency Models
• Strong Consistency
• Eventual Consistency
• Causal Consistency
• CAP Theorem: Consistency, Availability, Partition Tolerance.
9. Fault Tolerance
• Replication
• Checkpointing
• Logging
• Consensus Algorithms (Paxos, Raft).
10. Security
• Authentication
• Authorization
• Encryption
• Secure Communication (TLS, Kerberos).