# Distributed Systems

- Institution: IIT Patna
- Department: Computer Science and Engineering
- Teacher: Prof. Rajiv Misra
- Level: Undergraduate
- Language: English
- Subjects: Computer science, Engineering
- Source: [NPTEL](https://nptel.ac.in/courses/106106168)
- Licence: [CC BY-NC-SA](https://nptel.ac.in/faq) (Non-commercial use only.)
- Syllabus: [at the source](https://nptel.ac.in/courses/106106168)
- Who can watch: Tweens profiles and older (sources give no ratings; placed by Invisible Network from the source's own words)

A distributed system is a software system in which components located on networked computers communicate and coordinate their actions by passing messages. The components interact with each other in order to achieve a common goal. Distributed applications (distributed apps) are applications or software that runs on multiple computers within a network at the same time and can be stored on servers or with cloud computing. This course provides an in-depth understanding of fundamental principles and models underlying the theory, algorithms, and systems aspects of distributed computing. Few Emerging topics such as Peer-to-Peer computing, Distributed Hash Table, Google File System, HDFS, Spark, Sensor Networks and Security in Distributed Systems will also be covered for significant impact. Upon completing this course, students will have intimate knowledge about how things work in a distributed environment.

Intended audience: Any Interested Learners.

Prerequisites: Minimum: Data Structures and AlgorithmsIdeal: Basic networking concepts, Basic OS concepts (e.g., processes, threads, synchronization, file systems, scheduling etc.), Advanced Programming (Good knowledge in C and C++).

## Lectures

1. [Introduction to Distributed Systems](https://invisiblenetwork.ai/learn/nptel/106106168/de7ed6586ed7) (YouTube)
2. [Basic Algorithms in Message Passing System](https://invisiblenetwork.ai/learn/nptel/106106168/82079eea91e9) (YouTube)
3. [Leader Election in Rings](https://invisiblenetwork.ai/learn/nptel/106106168/3839a17ff54d) (YouTube)
4. [Distributed Models of Computation, Causality & Logical Time](https://invisiblenetwork.ai/learn/nptel/106106168/91cc3d4d2689) (YouTube)
5. [Size of Vector Clock, Matrix Clocks, Virtual Time and Physical Clock Synchronization](https://invisiblenetwork.ai/learn/nptel/106106168/a81761d77880) (YouTube)
6. [Global State and Snapshot Recording Algorithms](https://invisiblenetwork.ai/learn/nptel/106106168/3301e3caf395) (YouTube)
7. [Distributed Mutual Exclusion and Non-Token based Approaches](https://invisiblenetwork.ai/learn/nptel/106106168/b5faabbb3465) (YouTube)
8. [Quorum Based Distributed Mutual Exclusion Approaches](https://invisiblenetwork.ai/learn/nptel/106106168/e1f6e76b50fc) (YouTube)
9. [Token Based Distributed Mutual Exclusion Approaches](https://invisiblenetwork.ai/learn/nptel/106106168/871fa6c92a63) (YouTube)
10. [Consensus and Agreement Algorithms](https://invisiblenetwork.ai/learn/nptel/106106168/bea54f7eb466) (YouTube)
11. [Checkpointing & Rollback Recovery](https://invisiblenetwork.ai/learn/nptel/106106168/4f376a70d4e7) (YouTube)
12. [Deadlock Detection in Distributed Systems](https://invisiblenetwork.ai/learn/nptel/106106168/99ef1c230e17) (YouTube)
13. [Distributed Shared Memory](https://invisiblenetwork.ai/learn/nptel/106106168/e5f42f4ab1ef) (YouTube)
14. [Distributed Minimum Spanning Tree](https://invisiblenetwork.ai/learn/nptel/106106168/d327b52bcd81) (YouTube)
15. [Termination Detection in Distributed System](https://invisiblenetwork.ai/learn/nptel/106106168/f756df2603ef) (YouTube)
16. [Message Ordering and Group Communication](https://invisiblenetwork.ai/learn/nptel/106106168/868283402866) (YouTube)
17. [Self-Stabilization](https://invisiblenetwork.ai/learn/nptel/106106168/1331e1af1e4d) (YouTube)
18. [Case Study 01 - Distributed Randomized Algorithms](https://invisiblenetwork.ai/learn/nptel/106106168/18b2607d3620) (YouTube)
19. [Case Study 02 - Peer-to-Peer Computing and Structured Overlay Network](https://invisiblenetwork.ai/learn/nptel/106106168/b55095c22e22) (YouTube)
20. [Case Study 03 - The Google File System (GFS)](https://invisiblenetwork.ai/learn/nptel/106106168/33abd26accf1) (YouTube)
21. [Case Study 04 - MapReduce](https://invisiblenetwork.ai/learn/nptel/106106168/0f8c3a2a4e23) (YouTube)
22. [Case Study 05 - HDFS](https://invisiblenetwork.ai/learn/nptel/106106168/3ac24c2c8f22) (YouTube)
23. [Case Study 06 - Spark](https://invisiblenetwork.ai/learn/nptel/106106168/f04cfbc0b67b) (YouTube)
24. [Case Study 07 - Distributed Algorithms for Sensor Networks](https://invisiblenetwork.ai/learn/nptel/106106168/bc37abea3715) (YouTube)
25. [Case Study 08 - Authentication in Distributed Systems](https://invisiblenetwork.ai/learn/nptel/106106168/36996d5d15c9) (YouTube)
26. [Case Study 09 - Bitcoin: A Peer-to-Peer Electronic Cash System](https://invisiblenetwork.ai/learn/nptel/106106168/fcdddd050933) (YouTube)
27. [Case Study 10 - BlockChain Technology](https://invisiblenetwork.ai/learn/nptel/106106168/7cb914a98f0e) (YouTube)
