This document outlines a course on distributed systems. It covers topics like communication, naming, synchronization, consistency, replication, and fault tolerance in distributed systems over 6 chapters. Students will be evaluated through continuous assessments, a midterm exam, and a final exam.
This document outlines a course on distributed systems. It covers topics like communication, naming, synchronization, consistency, replication, and fault tolerance in distributed systems over 6 chapters. Students will be evaluated through continuous assessments, a midterm exam, and a final exam.
Computer Science and Networking Program Course Title: Distributed Systems Credit Hours: 3 Course Number: CN-6123 Prerequisite: Operating Systems & Networking Course Objectives: As learning outcomes, students completing this course should be able to: • Understand the basic concepts of how to • Apply cutting edge tools to investigate the develop a distributed system. behavior of systems under failure. • Be able to design a distributed system for a • Understand practical design considerations specified level of fault tolerance. for some modern distributed systems • Understand how independent network and frameworks, and their limitations. machine failure intricate distributed systems. • Recognize cases when distribution is not • Articulate and understand the trade-off b/n necessary and issues related to clock well-known data consistency models. synchronization.
Chapter 1: Introduction to Distributed Systems
1.1 Basics of distributed systems 1.2 Characteristics of distributed systems 1.3 Types of distributed systems 1.4 Distributed system architectures Chapter 2: Distributed Systems Communication 2.1 System Architectures 2.2 Processes, Threads and Code Migration 2.3 Modes of Communication 2.4 Communication Abstractions Chapter 3: Naming in Distributed Systems 3.1 Naming Entities 3.2 Name Resolution 3.3 Implementation of Name Space 3.4 Implementation of Resolution Chapter 4: Synchronization 4.1 Global Time (Physical & Logical clocks) 4.2 Mutual Exclusion 4.3 Distributed algorithms 4.4 Concurrency Control Chapter 5: Consistency and Replication 5.1 Performance and Scalability 5.2 Consistency Models 5.3 Replica Management and Consistency Protocols Chapter 6: Fault Tolerance in Distributed Systems 6.1 Basics of Fault Tolerance 6.2 Fault Detection 6.3 Reliable Client-Server Communication 6.4 Reliable Group Communication 6.5 Recovery Reference: 1. A. S. Tanenbaum and Maarten van Steen, Distributed Systems, Principles and Paradigms, Prentice Hall, 2nd edition, 2006. 2. G. Coulouris, J. Dollimore, and T. Kindberg, Distributed Systems, Concepts and Design, Addison Wesley, 4th edition, 2005. 3. S. Mullender, Distributed Systems, 2nd edition, Addison-Wesley, 1993. Evaluation method: Continuous assessments + Mid-exam (50%) and Final exam (50%)