CS 420 and CS 591 - 003
Distributed Systems
Course Catalog Description
A top-down approach addressing the issues to be resolved in the design of distributed systems. Concepts and existing approaches are described using a variety of methods including case studies, abstract models, algorithms and implementation exercises.
Course Learning Outcomes
By the end of the course, students will be able:
To learn the basic theoretical concepts of distributed systems
To develop practical skills in the area of distributed systems.
Evaluation Plan (subject to change)
Your final grade will be a weighted average of:
Quizzes and Exams – 45%
Lab Assignments – 30%
Projects – 20%
Attendance – 5%
Your final grade will be:
Grade A : 4.000 : ≥ 95%
Grade A − : 3.667 : ≥ 90% and < 95%
Grade B + : 3.333 : ≥ 85% and < 90%
Grade B : 3.000 : ≥ 80% and < 85%
Grade B − : 2.667 : ≥ 75% and < 80%
Grade C + : 2.333 : ≥ 70% and < 75%
Grade C : 2.000 : ≥ 65% and < 70%
Grade C − : 1.667 : ≥ 60% and < 65%
Grade D + : 1.333 : ≥ 55% and < 60%
Grade D : 1.000 : ≥ 50% and < 55%
Grade F : 0.000 : < 50%
Note: The above percentages are tentative. There may be significant changes.
Meeting Times / Class Schedules
Monday - 12:00 Noon - 12:50 P.M.
Wednesday - 12:00 Noon - 12:50 P.M.
Friday - 12:00 Noon - 12:50 P.M.
Office Hours
Monday - 2:00 P.M. - 4:00 P.M.
Wednesday - 2:00 P.M. - 4:00 P.M.
Friday - 2:00 P.M. - 4:00 P.M.
Approx. Semester Plan - Click here
Key Points About Course Policy
Prerequisites:
Familiarity with programming in a C-family language (C, C++) and Java.
Basic understanding of Networking, Operating Systems, Algorithms, Data Structures, Computer Organizations, and Computer Architectures is expected.
Attendance Expectations:
Attendance at every lecture is mandatory.
Students must arrive on time, stay for the entire class period, and actively participate in in-class activities.
Lateness, early departure, and non-participation are highly discouraged.
Course Format:
Lectures, discussions, programming assignments, and a final project are integral parts of the course.
Both individual and group activities enhance understanding of theoretical concepts and practical skills in distributed systems development.
CS Department Lab Hours:
The CS Department lab is unavailable during evenings and weekends.
Students must plan their work accordingly if they intend to use the lab facilities.
Electronic Lab Submission:
Instructions will be provided for electronically submitting labs and programs for grading.
Failure to adhere to instructions may result in a score of zero for labs.
Assessment:
Evaluation includes programming assignments, quizzes, exams, and the final project.
Active participation in class discussions and group activities is also assessed.
Quizzes and Assignments:
Regular quizzes and assignments assess comprehension of course material.
Implementing and practicing code snippets and problems discussed in class is expected.
Importance of Assignments:
Completing assignments is crucial for effective learning and successful exam performance.
Timely Completion:
Initiating projects and assignments promptly is crucial to meet deadlines, which will be strictly enforced.
Late Submissions Policy:
Late submissions result in penalties.
The maximum attainable score decreases by 20% for each day of late submission following the deadline.
Exam Integrity:
Exams must be completed independently, without assistance or communication.
Dates will be posted and may change.
Exams cover cumulative concepts from readings, course materials, and activities.
Missing an exam without sufficient documentation results in a score of 0.
In emergencies with appropriate documentation, alternative arrangements may be considered.
Understanding Cheating:
Cheating on programming assignments is a significant concern.
Familiarize yourself with the CS Department's webpage on Academic Dishonesty, which provides detailed definitions of cheating.
Consequences of Cheating:
Cheating results in a zero for the assignment, potentially affecting eligibility for exams.
A second violation leads to an immediate 'F' for the course.
Academic Integrity Code:
Students must uphold academic honesty.
Any involvement in copying during quizzes, midterms, or final exams results in a zero for the respective exam.
Syllabus Change Policy:
The syllabus is a guide and may be modified with prior notice.
Textbook Requirement:
Access to designated textbooks is mandatory.
Students are expected to read assigned sections, as material from the texts may be included in assessments, even if not covered in lectures.
Textbooks
Distributed Computing: Principles, Algorithms, and Systems by Ajay D. Kshemkalyani and Mukesh Singhal
Advanced Concepts in Operating Systems by Mukesh Singhal and Niranjan G. Shivaratri
References
Distributed Algorithms by Nancy A. Lynch
Distributed Systems: Principles and Paradigms by Andrew S. Tanenbaum and Maarten Van Steen
Introduction to Distributed Algorithms by Gerard Tel
Distributed Computing: Fundamentals, Simulations and Advanced Topics by Hagit Attiya and Jennifer Welch
Elements of Distributed Computing by Vijay K. Garg
Distributed Systems: An Algorithmic Approach by Sukumar Ghosh
Distributed Computing: Principles and Applications by Mei-Ling L. Liu
Future References
Additional research papers and online resources will be provided throughout the course.
Note: The lectures, homework assignments, quizzes, and other announcements will be made available through Email, D2L, and the course webpage. Posting any course materials, including solutions, homework, and labs, on public websites without permission is a violation of course policy and the instructor’s copyright.
Emergency Procedures
Southern Illinois University Carbondale is committed to providing a safe and healthy environment for study and work. Because some health and safety circumstances are beyond our control, we ask that you become familiar with the SIUC Emergency Response Plan and Building Emergency Response Team (BERT) program. The emergency response information is available on posters in buildings on campus, on BERT’s website at www.bert.siu.edu, the Department of Safety’s website at www.dps.siu.edu (disaster drop-down) and in the Emergency Response Guideline pamphlet. Know how to respond to each type of emergency. Instructors will provide guidance and direction to students in the classroom in the event of an emergency affecting your location. It is important that you follow these instructions and stay with your instructor during an evacuation or sheltering emergency. The Building Emergency Response Team will provide assistance to your instructor in evacuating the building or sheltering within the facility.
Major Topics Covered in the Course (Tentative)
Module I
Approx. Number of Classes - 14
Theory:
Introduction to distributed systems.
Inter process communication.
Logical clocks, causal ordering and global state.
Distributed snapshot recording algorithms.
Lab Assignments:
Use RMI to implement Lamport’s vector clocks.
Use RMI to implement BSS protocol for causal ordering.
Textbooks
Distributed Computing: Principles, Algorithms, and Systems by Ajay D. Kshemkalyani and Mukesh Singhal.
Chapter 1: Introduction to distributed systems.
Chapter 2: A model of distributed computations.
Chapter 3: Logical time.
Chapter 4: Global state and snapshot recording algorithms.
Advanced Concepts in Operating Systems by Mukesh Singhal and Niranjan G. Shivaratri.
Chapter 5: Theoretical Foundations.
Self Reading
Distributed Computing: Principles, Algorithms, and Systems by Ajay D. Kshemkalyani and Mukesh Singhal.
Chapter 5: Terminology and basic algorithms.
Chapter 6: Message ordering and group communication.
Module II
Approx. Number of Classes - 14
Theory:
Consensus and Agreement Protocols.
Commit Protocols, Termination Detection Algorithms.
Distributed Mutual Exclusion.
Distributed Deadlock Detection Algorithms.
Lab Assignments:
Use RMI to implement Lamport Mutual Exclusion.
Use RMI to implement Maekawa’s mutual exclusion.
Textbooks
Distributed Computing: Principles, Algorithms, and Systems by Ajay D. Kshemkalyani and Mukesh Singhal.
Chapter 7: Termination detection.
Chapter 9: Distributed mutual exclusion algorithms.
Chapter 10: Deadlock detection in distributed systems.
Chapter 14: Consensus and agreement algorithms.
Advanced Concepts in Operating Systems by Mukesh Singhal and Niranjan G. Shivaratri.
Chapter 3: Process Deadlocks.
Chapter 6: Distributed Mutual Exclusion.
Chapter 7: Distributed Deadlock Detection.
Chapter 8: Agreement Protocols.
Self Reading
Distributed Computing: Principles, Algorithms, and Systems by Ajay D. Kshemkalyani and Mukesh Singhal.
Chapter 8: Reasoning with knowledge.
Chapter 11: Global predicate detection.
Module III
Approx. Number of Classes - 14
Theory:
Distributed Scheduling and Self-Stabilization Algorithms.
Failure Recovery and Fault tolerance in distributed systems.
Distributed File System (DFS).
Distributed Shared Memory.
Lab Assignments:
Use RMI to implement Centralized Clock Synchronization.
Use RMI to implement Suzuki Kasami.
Textbooks
Distributed Computing: Principles, Algorithms, and Systems by Ajay D. Kshemkalyani and Mukesh Singhal.
Chapter 12: Distributed shared memory.
Chapter 13: Checkpointing and rollback recovery.
Chapter 15: Failure detectors.
Chapter 17: Self-stabilization.
Advanced Concepts in Operating Systems by Mukesh Singhal and Niranjan G. Shivaratri.
Chapter 9: Distributed File Systems.
Chapter 10: Distributed Shared Memory.
Chapter 11: Distributed Scheduling.
Chapter 12: Recovery.
Chapter 13: Fault Tolerance.
Self Reading
Distributed Computing: Principles, Algorithms, and Systems by Ajay D. Kshemkalyani and Mukesh Singhal.
Chapter 16: Authentication in distributed systems.
Chapter 18: Peer-to-peer computing and overlay graphs.
Project
Use RMI to implement a simple chat system.