A comprehensive academic resource for Distributed Computing (DC) and Distributed Computing Laboratory (DC Lab), covering communication paradigms, synchronization algorithms, election protocols, resource management, and distributed file systems.
Overview · Contents · Reference Books · The Wall · Assignments · Quizzes · Laboratory · Case Study · Internal Assessment Test · Semester Exam · Submission Report · Syllabus · Usage Guidelines · License · About · Acknowledgments
Distributed Computing (CSC802) and Distributed Computing Lab (CSL802) are core subjects in the Final Year (Semester VIII) of the Computer Engineering curriculum at the University of Mumbai. These courses provide foundational knowledge of distributed systems, middleware technologies, and coordination algorithms.
The curriculum encompasses several key domains in Distributed Computing (DC):
- Distributed System Models: Architecture patterns, client-server models, and peer-to-peer systems.
- Communication Paradigms: Remote Procedure Calls (RPC), Remote Method Invocation (RMI), and Message-oriented communication.
- Synchronization: Physical and Logical clocks (Lamport, Vector), and Global State collection.
- Election and Mutual Exclusion: Bully algorithm, Ring algorithm, and distributed locking mechanisms.
- Consistency and Replication: Data-centric and Client-centric consistency models, and replication protocols.
- Distributed File Systems: Architecture, naming, and caching in systems like NFS and GFS.
This repository represents a curated collection of study materials, reference books, lab experiments, and personal preparation notes compiled during my academic journey. The primary motivation for creating and maintaining this archive is simple yet profound: to preserve knowledge for continuous learning and future reference.
As a computer engineer, understanding distributed computing is crucial for developing modern, scalable applications. This repository serves as my intellectual reference point: a resource I can return to for relearning concepts, reviewing methodologies, and strengthening understanding when needed.
Why this repository exists:
- Knowledge Preservation: To maintain organized access to comprehensive study materials beyond the classroom.
- Continuous Learning: To support lifelong learning by enabling easy revisitation of fundamental concepts.
- Academic Documentation: To authentically document my learning journey through Distributed Computing.
- Community Contribution: To share these resources with students and learners who may benefit from them.
Note
All materials in this repository were created, compiled, and organized by me throughout my undergraduate program (2018-2022) as part of my coursework, laboratory assignments, and project implementations.
This collection includes comprehensive reference materials covering all major topics:
| # | Resource | Focus Area |
|---|---|---|
| 1 | 1) Introduction to DS | Foundations and Characterization of Distributed Systems |
| 2 | 2) Communication | Remote Procedure Calls (RPC) and Inter-process Communication |
| 3 | 3) Synchronization | Physical/Logical Clocks and Election Algorithms |
| 4 | 4) Resource and Process Management | Process management and Task assignment models |
| 5 | 5) Consistency, Replication, Fault Tolerance | System resilience and Data consistency protocols |
| 6 | 6) Distributed File Systems and Name Services | Naming architectures and Storage systems |
| 7 | Distributed Systems Concepts & Design 5th Ed | Standard Text Book (T2) by Coulouris et al. |
| 8 | Distributed Systems Principles and Paradigms 2nd Ed | Standard Text Book by Andrew Tanenbaum |
| 9 | Distributed Systems 3rd Preliminary Ed | Modern Distributed Systems by van Steen & Tanenbaum |
| 10 | DC Techmax (Full Collection) | Comprehensive TechKnowledge study material |
| 11 | DC Techmax (Module Index) | Techmax Chapter-wise structure and outcomes |
| 12 | DC Toppers Solutions | University solved questions and exam preparations |
| 13 | DC NOTES (Consolidated) | Comprehensive handwritten and compiled study notes |
| 14 | Distributed File System Study | Technical study on scale and consistency in DFS |
| 15 | Google Case Study | Real-world Distributed Systems: The Google Case |
| 16 | Andrew File Systems (AFS) | Case study on architectural scalability in AFS |
| 17 | Network File Systems (NFS) | Detailed technical analysis of NFS protocols |
| 18 | X.500 Directory Service | Global naming and directory service architecture |
| 19 | Distributed Computing VIVA | Frequently asked questions and concepts for VIVA |
| 20 | DC Manual Writeups | Practical implementation details and manual notes |
Collaborative Study Notes by Amey & Mega
![]() Amey Thakur |
![]() Mega Satish |
|---|
The Wall - Notes Authored by MEGA SATISH
Comprehensive module-wise notes curated by Mega Satish, covering all essential topics:
| Module | Resource | Topics Covered |
|---|---|---|
| 4 | DC Module - 4 | Consistency and Replication |
| 5 | DC Module - 5 | Fault Tolerance and Recovery |
| 6 | DC Module - 6 | Distributed File Systems and Security |
Academic assignments for comprehensive learning and practice:
| # | Assignment | Description | Date |
|---|---|---|---|
| 1 | Assignment 1 | Heterogeneous systems, middleware models, RPC semantics, stream communication, and synchronization algorithms | March 11, 2022 |
| 2 | Assignment 2 | Resource management (load balancing/sharing), code migration, consistency models, and Google case study | March 25, 2022 |
| 3 | Assignment 3 | Detailed analysis of Distributed Shared Memory (DSM) architecture and its practical applications | March 25, 2022 |
Topics Covered: Heterogeneous Systems · Middleware · RPC · Stream Communication · Synchronization · Resource Management · Consistency Models · DSM
Distributed Computing specific quizzes conducted during the course:
| # | Quiz | Topics | Date | Marks |
|---|---|---|---|---|
| 1 | Quiz 1 | Module - 1: Foundations [CO1] | April 14, 2022 | 10/10 |
| 2 | Quiz 2 | Module - 2: Communication [CO2] | March 2, 2022 | 10/10 |
| 3 | Quiz 3 | Module - 3: Synchronization [CO3] | March 17, 2022 | 10/10 |
| 4 | Quiz 4, 5 & 6 | Module - 4 to 6 [CO4-CO6] | March 29, 2022 | 30/30 |
The laboratory component (CSL802) focuses on hands-on implementation of distributed algorithms including clock synchronization, election protocols, and resource management.
Tip
Implementation Note: This laboratory utilizes Python and Java for core implementations. Most experiments involve network simulations; ensure your environment allows communication over local sockets. Using Pyro4 for RMI experiments and Socket programming for low-level communication is essential.
| # | Experiment | Date | Marks | Report |
|---|---|---|---|---|
| 1 | To Compare Network operating system and Distributed operating system | January 13, 2022 | 10/10 | View |
| 2 | To Implement Group Communication as a Chat application using socket programming | January 20, 2022 | 10/10 | View |
| 3 | To Implement any application using RMI/RPC | January 27, 2022 | 10/10 | View |
| 4 | To Implement Lamport Logical clock Algorithm | February 3, 2022 | 10/10 | View |
| 5 | To Implement a Bully Algorithm | February 10, 2022 | 7/10 | View |
| 6 | To Implement Token Ring Mutual Exclusion Algorithm | February 18, 2022 | 8/10 | View |
| 7 | To Implement Chandi-Misra-Haas distributed deadlock detection algorithm | February 25, 2022 | 8/10 | View |
| 8 | To Implement Load Balancing algorithm | March 11, 2022 | 10/10 | View |
| 9 | To Discuss different types of a file system (NFS, AFS, Google Case Study) | March 18, 2022 | 7/10 | View |
| 10 | To Implement Name Resolution | March 31, 2022 | 8/10 | View |
Experiment 2: Socket Programming (2 Programs)
| Program | Category | Description | Code |
|---|---|---|---|
Chat_Server.py |
Networking | Multi-client chat server using Sockets | View |
Chat_Client.py |
Networking | Interactive chat client | View |
Experiment 3: RMI / Pyro4 (2 Programs)
| Program | Category | Description | Code |
|---|---|---|---|
RMI_Server.py |
Middleware | RMI Calculator Server implementation | View |
RMI_Client.py |
Middleware | RMI Calculator Client implementation | View |
Experiment 4: Clock Synchronization (2 Programs)
| Program | Category | Description | Code |
|---|---|---|---|
Lamport_Clock_Synchronization.py |
Coordination | Lamport's Logical Clock implementation | View |
Lamport_Mutual_Exclusion.py |
Coordination | Alternative Logical Clock implementation | View |
Experiment 5: Election Algorithm (1 Program)
| Program | Category | Description | Code |
|---|---|---|---|
Bully_Algorithm.java |
Coordination | Bully Election Algorithm implementation | View |
Experiment 6: Mutual Exclusion (1 Program)
| Program | Category | Description | Code |
|---|---|---|---|
Token_Ring.java |
Coordination | Token Ring Algorithm for mutual exclusion | View |
Experiment 7: Deadlock Detection (6 Programs)
| Program | Category | Description | Code |
|---|---|---|---|
Chandy_Misra_Haas.java |
Termination | Chandi-Misra-Haas Unified (Java) | View |
Chandy_Misra_Haas_Deadlock.java |
Termination | CMH Edge-Chasing (Deadlock scenario - Java) | View |
Chandy_Misra_Haas_No_Deadlock.java |
Termination | CMH Edge-Chasing (No-Deadlock scenario - Java) | View |
Chandy_Misra_Haas.py |
Termination | Chandi-Misra-Haas Unified (Python) | View |
Chandy_Misra_Haas_Deadlock.py |
Termination | CMH Edge-Chasing (Deadlock scenario - Python) | View |
Chandy_Misra_Haas_No_Deadlock.py |
Termination | CMH Edge-Chasing (No-Deadlock scenario - Python) | View |
Experiment 8: Load Balancing (2 Programs)
| Program | Category | Description | Code |
|---|---|---|---|
Load_Balancing.java |
Resource Mgmt | Java static load balancing model | View |
Load_Balancing.py |
Resource Mgmt | Python dynamic load balancing model | View |
Experiment 10: Name Resolution & RPC (4 Programs)
| Program | Category | Description | Code |
|---|---|---|---|
Rpc_Server.py |
Middleware | Remote Procedure Call Server | View |
Rpc_Client.py |
Middleware | Remote Procedure Call Client | View |
Name_Resolution.ipynb |
Naming | Name services implementation notebook | View |
test.txt |
Dataset | Input data for resolution service | View |
| # | Resource | Description |
|---|---|---|
| 1 | Lab README | Detailed navigation guide with program descriptions |
A technical analysis and comparative evaluation of distinct architectures of Distributed File Systems.
Important
Special thanks to Mega Satish and Hasan Rizvi for their meaningful contributions, guidance, and support that helped shape this work.
This Research Paper Presentation (RPP) provides a detailed comparative analysis of various Distributed File Systems (DFS) such as NFS, AFS, and GFS. The study focuses on evaluating their architectural designs, naming conventions, caching mechanisms, and consistency protocols. It serves as a comprehensive reference for understanding how distributed storage solutions handle scale, availability, and performance in modern computing environments.
Note
Research Impact: This project was published as a research paper and is available on ResearchGate.
| # | Resource | Description | Date |
|---|---|---|---|
| 1 | Research Paper | Scholarly comparative analysis | April 2022 |
| 2 | Presentation | Visual deck of the study (PDF) | April 2022 |
| 3 | Source Archive | Complete project documentation (ZIP) | April 2022 |
| 4 | ResearchGate | Case study available on ResearchGate | April 2022 |
Internal assessment evaluations conducted during the course:
| # | Resource | Description |
|---|---|---|
| 1 | Question Paper | DC Internal Assessment Test 1 Question Paper |
| # | Resource | Description |
|---|---|---|
| 1 | Question Paper | DC Internal Assessment Test 2 Question Paper |
Additional Resources:
| # | Resource | Description |
|---|---|---|
| 1 | Module - 1 | Personal Exam Preparation Notes |
| 2 | Module - 2 | Personal Exam Preparation Notes |
| 3 | Module - 3 | Personal Exam Preparation Notes |
| 4 | Question Bank 1 | Prep Bank Set 1 |
| 5 | Question Bank 2 | Prep Bank Set 2 |
| 6 | Exam QB | Comprehensive Prep Bank |
Final semester examination submission:
| # | Resource | Description | Date |
|---|---|---|---|
| 1 | Question Paper | Official University Question Paper | May 20, 2022 |
Additional Resources:
| # | Resource | Description |
|---|---|---|
| 1 | Amey's Notes | Personal Exam Preparation Notes |
| 2 | MCQ | MCQ Question Bank |
| 3 | Sample Questions | DC practice and sample questions |
| 4 | Timetable | Semester 8 examination schedule |
Course completion documentation with exit survey:
| # | Document | Description |
|---|---|---|
| 1 | Submission Report | Final coursework submission report |
| 2 | Exit Survey (Theory) | Course outcome survey for DC Theory |
| 3 | Exit Survey (Lab) | Course outcome survey for DC Lab |
| 4 | Course Exit Survey | Course outcome survey for Distributed Computing |
| 5 | Semester Report | Collective Semester 8 submission report |
Official CBCGS Syllabus
Complete Final Year Computer Engineering syllabus document from the University of Mumbai, including detailed course outcomes, assessment criteria, and module specifications for Distributed Computing and Distributed Computing Laboratory.
Important
Always verify the latest syllabus details with the official University of Mumbai website, as curriculum updates may occur after this repository's archival date.
This repository is openly shared to support learning and knowledge exchange across the academic community.
For Students
Use these resources as reference materials for understanding distributed systems, coordination paradigms, and preparing for examinations. All content is organized for self-paced learning.
For Educators
These materials may serve as curriculum references, lab examples, or supplementary teaching resources. Attribution is appreciated when utilizing content.
For Researchers
The documentation and organization may provide insights into academic resource curation and educational content structuring.
This repository and all linked academic content are made available under the Creative Commons Attribution 4.0 International License (CC BY 4.0). See the LICENSE file for complete terms.
Note
Summary: You are free to share and adapt this content for any purpose, even commercially, as long as you provide appropriate attribution to the original author.
Created & Maintained by: Amey Thakur
Academic Journey: Bachelor of Engineering in Computer Engineering (2018-2022)
Institution: Terna Engineering College, Navi Mumbai
University: University of Mumbai
This repository represents a comprehensive collection of study materials, reference books, assignments, and personal preparation notes curated during my academic journey. All content has been carefully organized and documented to serve as a valuable resource for students pursuing Distributed Computing and Distributed Computing Laboratory.
Connect: GitHub · LinkedIn · ORCID
Grateful acknowledgment to Mega Satish for her exceptional contribution to this repository through "The Wall" - comprehensive module-wise notes that became an invaluable resource for understanding complex Distributed Computing concepts. Her constant support, patience, and clarity throughout this journey made a real difference. Learning alongside her was transformative, not only because she explained concepts so clearly, but because she truly cared about understanding them together. Her thoughtful approach to teaching, openness to discussion, and steady encouragement turned challenges into meaningful learning moments. Beyond the notes, her collaborative efforts and contributions to the "A Comparative Study on Distributed File Systems" project were invaluable to its success. This work reflects the growth that came from learning side by side. Thank you, Mega, for everything you shared and taught along the way.
Grateful acknowledgment to Hasan Rizvi for his exceptional support, collaborative efforts, and the technical insights he shared during the development of the "A Comparative Study on Distributed File Systems" project. Working alongside him was a truly enriching experience - his technical expertise, dedication to exploring distributed architectures, and enthusiasm for innovation turned every challenge into a meaningful learning opportunity. Our shared curiosity and collaborative efforts in analyzing complex distributed storage solutions were essential to the project's success. Thank you, Hasan, for being such an outstanding project partner and for all the knowledge and encouragement you shared along the way.
Grateful acknowledgment to the faculty members of the Department of Computer Engineering at Terna Engineering College for their guidance and instruction in Distributed Computing. Their expertise and support helped develop a strong understanding of distributed systems and coordination paradigms.
Special thanks to the mentors and peers whose encouragement, discussions, and support contributed meaningfully to this learning experience.
Overview · Contents · Reference Books · The Wall · Assignments · Quizzes · Laboratory · Case Study · Internal Assessment Test · Semester Exam · Submission Report · Syllabus · Usage Guidelines · License · About · Acknowledgments
Computer Engineering (B.E.) - University of Mumbai
Semester-wise curriculum, laboratories, projects, and academic notes.


