590-095   Introduction to Distributed Systems

Instructors Mike Reiter
Office: Fred Brooks Building 350
Office hour: 11am-noon on Fridays indicated below

Jay Aikat
Office: Fred Brooks Building 314
Office hour: 11am-noon on Fridays indicated below
Location Fred Brooks Building 008
Meeting times Usually Mondays, Wednesdays 11am-12:15pm (see below)
Occasionally Fridays 11am-12:15pm (see below)
Prerequisites COMP 431 (Internet Services and Protocols) or its equivalent, or COMP 530 (Operating Systems) or its equivalent
Textbook A. S. Tanenbaum and M. Van Steen. Distributed Systems: Principles and Paradigms (2nd Edition). Prentice Hall, 2007.
Description

A distributed system is software that makes a collection of independent computers appear to its users as a single coherent system. The types of distributed systems are myriad, ranging from mission-critical fault-tolerant server clusters to open systems of massive scale (e.g., the web, peer-to-peer file-sharing systems). Nearly every significant system today is distributed, and an understanding of distributed systems is essential for programmers and systems architects alike.

In this course we will introduce principles for building distributed systems to meet various goals (e.g., resource availability, scalability, and distribution transparency), despite significant challenges that distributed systems introduce (e.g., partial system failure, incomplete trust of all computers in the system, and concurrency). Specifically, the topics that will be covered include:

  • Types of distributed systems and their goals
  • Resource naming
  • Synchronization of distributed processes
  • Consistency and replication
  • Fault tolerance
  • Security and trust
  • Distributed object-based systems
  • Distributed file systems
  • Distributed web-based systems
  • Peer-to-peer systems
The course will draw illustrative examples from both deployed systems and systems explored in the research literature. The course will additionally review the operating system and networking basics that are needed for distributed systems understanding.

Course schedule (subject to change)

Note: Class meets on days/dates in boldface.
Wk Day Date Topic Reading Comments
1 M Jan 9 Course introduction UNC-Chapel Hill ITS policies
Instrument of Student Governance
Honor Code Observation in Computer Science Courses
Slides
  W Jan 11 Overview of distributed systems Chapter 1 Slides
  F Jan 13 Office hour    
2 M Jan 16 University Holiday    
  W Jan 18 Architectures; Lab tour Chapter 2, except 2.3, 2.4 Slides
  F Jan 20 Office hour    
3 M Jan 23 Architectures; Machine room tour   Quiz 1
Project Phase 1 announced
  W Jan 25 Processes, threads, virtualization Chapter 3 Slides    
  F Jan 27 Office hour    
4 M Jan 30 Processes, threads, virtualization (contd.)    
  W Feb 1 Communication Chapter 4 Quiz 2
Slides
  F Feb 3 Office hour    
5 M Feb 6 Communication (cont.), Naming Chapter 5 Slides
  W Feb 8 Naming (cont.)    
  F Feb 10 Office hour    
6 M Feb 13 Naming (cont.)   Quiz 3
  W Feb 15 Naming (cont.), Synchronization Chapter 6 Slides
7 W Feb 22 Synchronization (cont.) Chandy & Lamport 1985  
  F Feb 24 Office hour    
8 M Feb 27 Synchronization (cont.)   Quiz 4
Project Phase 2 announced
  W Feb 29 Replication Chapter 7, except 7.2.1 Slides
  F Mar 2 Office hour    
9 M Mar 5 Spring break    
  W Mar 7 Spring break    
  F Mar 9 Spring break    
10 M Mar 12 Replication (cont.)    
  W Mar 14 Replication (cont.)    
  F Mar 16 Office hour    
11 M Mar 19 Fault tolerance Chapter 8 Quiz 5
Slides
  W Mar 21 Fault tolerance (cont.)    
  F Mar 23 Office hour    
12 M Mar 26 Fault tolerance (cont.)    
  W Mar 28 Fault tolerance (cont.)   Project Phase 3 announced
  F Mar 30 Office hour    
13 M Apr 2 Security Chapter 9;
Sections 1-3, 5 and 6 of
Lampson et al. 1992
Quiz 6
Slides
  W Apr 4 Security (cont.)    
  F Apr 6 University Holiday    
14 W Apr 11 Security (cont.)    
  F Apr 13 Security (cont.)    
15 M Apr 16 Distributed file systems (guest lecture) Sections 1-6, 9 and 11 of
Levy & Silberschatz 1990
 
  W Apr 18 Google file system (guest lecture)    
  F Apr 20 Office hour    
16 M Apr 23 Security (cont.)    
  W Apr 25 Security (cont.) Abadi & Needham 1996