College of Engineering and Technology
School of Computing and Informatics
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%)