Course Objective: To familiarize students with the fundamental concepts, techniques and design of Distributed Systems and use of distributed computing applications domains.
No. | Subtopic | Authors | Link |
---|---|---|---|
1 | Introduction to Distributed Systems | Link | |
Definition, Type, Goals, Models | |||
Issues in Distributed Systems | |||
Hardware & Software Concepts | |||
Client-Server Model | |||
Middleware & Distributed Algorithms | |||
2 | Communication in Distributed Systems | Link | |
2.1 | Introduction to Message Passing | Ritvik Sharma, Prachi Tayshete, Shubham Karampure | Link |
Synchronization & Buffering | |||
Multi-datagram Messages | |||
Group Communication | |||
Remote Procedure Call (RPC) | |||
Remote Object Invocation (RMI) | |||
3 | Process in Distributed Systems | Link | |
Threads in Distributed Systems | |||
Clients and Servers | |||
Code Migration: Approaches & Models | |||
Migration Challenges | |||
4 | Synchronization in Distributed Systems | Link | |
Clock Synchronization | |||
Physical & Logical Clocks | |||
Election Algorithms (Bully, Ring) | |||
Mutual Exclusion Algorithms | |||
Load Balancing: Goals & Strategies | |||
5 | Consistency and Replication | Link | |
Reasons & Techniques for Replication | |||
Object & Data Replication | |||
Data-Centric Consistency Models | |||
Client-Centric Consistency Models | |||
Consistent Ordering of Operations |