Distributed Systems Tutorial
A distributed system is essentially a collection of independent computers that appear to its users as a single coherent system. Instead of one powerful machine handling everything, tasks are spread across multiple machines, which communicate and coordinate their actions to achieve a common goal.
- Distributed systems provide scalability, fault tolerance, and enhanced performance, making them ideal for managing large workloads and complex applications.
- It's a fundamental concept in modern computing, enabling the robust and reliable services we rely on daily.
Introduction to Distributed System
Understand the basics, goals, transparency types, and compare centralized, decentralized, and distributed systems.
- Goals of Distributed System
- Types of Transparency in a Distributed System
- Centralized vs Decentralized vs Distributed
- Loosely coupled and tightly coupled system
- Design Issues of Distributed System
- Various Failures in a distributed system
- Parallel computing vs Distributed computing
Scalability & Middleware
Explore scalable systems, the role of middleware, and differences between hardware and middleware.
- What is Scalable System?
- Role of Middleware in a distributed system
- Hardware vs Middleware
- What is Groupware
Communication in Distributed Systems
Learn about interprocess communication, gRPC, gossip protocols, message passing, and related issues.
- Interprocess Communication
- gRPC Communication
- Gossip Protocol
- Introduction of Message Passing
- Issues in IPC by Message Passing
Remote Procedure Calls
Study RPC mechanisms, transparency, implementation, stub generation, marshalling, server management, and call semantics.
- What is RPC Mechanism?
- Transparency of RPC
- RPC Implementation Mechanism
- Stub Generation
- Marshalling
- Server Management
- Parameter-Passing Semantics
- Call Semantics issues in RPC
- Communication Protocols for RPCs
- Client-Server Model
Synchronization in Distributed System
Understand clock synchronization, logical clocks, event ordering, mutual exclusion algorithms, and performance metrics.
- Synchronization
- Clock Synchronization
- Logical clock
- Lamport's algorithm
- Vector clocks
- Event Ordering
- Mutual Exclusion and its classification
- Mutual exclusion algorithm
- Cristian's algorithm
- Berkeley algorithm
- Broken based vs Non-Token based Algorithms
- Ricart algorithm
- Token-based algorithm
Source Management and Process Management
Examine resource and process management, task assignment, load balancing vs load sharing, and process migration.
- Features of Global Scheduling Algorithm
- What is Task Assignment Approach?
- Load-Balancing Approach
- Load-Sharing Approach
- Load Balancing vs Load Sharing
- Scheduling and Load Balancing
- Introduction of process management
- Process Migration
Distributed File System Shared Memory
Cover DFS architecture, file models, replication, fault tolerance, distributed shared memory, and consistency models
- DFS
- Characteristics of File system
- Network file system architecture
- Andrew file system
- File Service Architecture
- File Models
- File-Accessing Models
- File-Sharing Semantics
- File-Caching Schemes
- What is Replication
- Atomic commit protocol
- Design Principles of DFS
- What is Distributed shared memory and its advantages
- The architecture of Distributed shared memory
- Uniform Memory Access (UMA) vs Non-uniform Memory Access (NUMA)
- Design and implementation issue of distributed shared memory.
- Algorithm for implementing DSM
- Consistency models
- Thrashing in Distributed shared memory
Distributed Scheduling and Deadlock
Learn about load balancing, deadlock detection, prevention strategies, and distributed scheduling algorithms.
- What are scheduling and load balancing in a distributed system
- Load balancing algorithm
- Issues related to Load balancing in DS
- Components of load distribution
- Phantom deadlock
- Deadlock
- Deadlock Detection
- A necessary condition for deadlock
- Deadlock handling strategies
- Banker's algorithm
- Deadlock prevention policies
- A WFG-based distributed algorithm for deadlock detection
- Chandy-Misra-Haas's distributed deadlock detection algorithm
- Hierarchical deadlock detection
Security in Distributed System
Understand security concepts, cyberattacks, cryptography, authentication, access control, and digital signatures.
- What is security?
- Types of Cyberattacks
- Cryptography
- Authentication
- Implementation of Access Matrix
- Digital Signatures and Certificates
- Design Principles of Security
Distributed Multimedia and Database System
Explore distributed DBMS, multimedia systems, database types, and characteristics of distributed multimedia.
- What is Distributed DBMS?
- Advantages and disadvantages of DDBMS
- Functions of DDBMS
- Types of DBMS
- Comparison of Homogeneous and Heterogeneous databases
- What are distributed multimedia system and its characteristics
- Multimedia database
Distributed Algorithm
Study routing, packet switching, election algorithms, and distributed component models like CORBA and DCOM.
- Destination based routing
- Deadlock-free packet switching
- Wave and traversal algorithm
- Election algorithm (Bully algorithm, Ring algorithm)
- Comparison between Ring and Bully algorithm
- CORBA (Object model, CORBA services)
- Difference between CORBA and DCOM
- COM vs DCOM
- Lifecycle of COM
- Distributed Component Object Model (DCOM)
Distributed Transactions
Learn about distributed transactions, concurrency control, recovery, replication, and two-phase commit protocols
- What is a Distributed Transaction?
- Nested transactions and Flat transactions
- Concurrency Control in Distributed Transactions
- Transaction Recovery
- Introduction to Replication
- The mechanism for building
- Two-phase commit protocol