CS 451: Distributed Systems

Spring, 2007

Professor: Marty Humphrey

Latest News (Sun 5/6/07)

  • Added some notes for how to prepare for the final exam (Added 05/06/07)
  • Added class notes for Tues 5/01 (Added 05/04/07)
  • Added class notes for Tues 4/24 (Added 04/25/07)
  • Added class notes for Thurs night 4/19 / Fri afternoon 4/20 (Added 04/21/07)
  • Added class notes for Thurs 4/19 (Added 04/19/07)
  • Added Assignment #5, due Tues May 1 12:30pm (NO LATE SUBMISSIONS ACCEPTED!) (Added 04/19/07)
  • Added the 3 papers for Google Day (Added 04/18/07)

Logistics

  • Instructor:                     Marty Humphrey 
  • Office:                           Olsson 236C
  • Class meeting time:         Tuesday and Thursday 12:30-1:45 in Thornton Hall D223
  • Office Hours:                 Monday, 2-4pm or by appointment
  • Email:                              humphrey at cs.virginia.edu
  • WWW:                           http://www.cs.virginia.edu/~humphrey/cs451
  • TA:                                 Ray Buse, buse at cs.virginia.edu
  • TA Office hours:            Monday, 5-7pm, OLSSON 002a

Description

This course investigates the foundations of distributed systems. Aspects of distributed systems examined in this course include:

  • Fundamental Concepts of Distributed Systems: Architecture models; network architectures: OSI, Internet and LANs; interprocess communication (IPC)
  • Synchronization and Coordination: Distributed Mutual Exclusion; Group communication
  • Operating Systems Support for Distributed Systems: Protection mechanisms; Processes and threads; Networked OS; Distributed and Network File Systems (NFSs)
  • Distributed Objects and Middleware: Middleware; Distributed object models; Remote invocation; CORBA; Name and directory services; Transactions
  • Security: Security concepts; Cryptographic algorithms; Digital signatures; Authentication; Secure Sockets

 

Corequisites

  • CS 414 (Operating Systems) or equivalent (Note: CS 414 must be taken concurrently with or prior to this class)

 

Course Materials

  • Textbook: Distributed Systems: Concepts and Design, 4th Ed. Authors: George Coulouris, Jean Dollimore, and Tim Kindberg. Addison-Wesley. June 2005. ISBN: 0321263545
  • Emacs help sheet (from University of Leeds)
  • UNIX programming tools (from Stanford)
  • Materials from the Web (e.g., technical papers, specifications, information obtained via google)

 

Coursework

What

When

Weight

Readings (textbook and the Web)

every class 

 

Class participation

every class

10 %

Midterm

 

20 %

Written homeworks /

Programming assignments

5

50 %

Final exam

finals week

20 %

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Programming Projects

There are 5 homeworks/programming assignments planned for throughout the semester. That is, each assignment will have BOTH (a) the more traditional homework questions (e.g., from the book), which you are required to do by yourself, and (b) a programming component that you might be required to do by yourself or with another student from our class (the requirements will be clearly stated on each assignment). Programming assignments will involve Java, C, C++ and/or C# (the actual language will most likely depend on the particular assignment).

Schedule

Date

Class #:

Week #/Day #

Topic

Text

Chapter

Assignment

Out

Assignment

Due

Thurs 1/18

1: W1-1

 Intro (class notes)

 

 

Tues 1/23

2: W2-1

 Dis Systems models (class notes)

1,2

 

 

Thurs 1/25

3: W2-2

    More Dis Systems models (class notes)

    Networking

 

 

Tues 1/30 

4: W3-1

 No Class -- Marty at Conference (NC)

 

 

 

Thurs 2/1

5: W3-2

 Networking (class notes)

3

Assignment #1

 

Tues 2/6

6: W4-1

Interprocess Communication (class notes)

4

 

 

Thurs 2/8

7: W4-2

Distributed Objects and Remote Invocation

(class notes)

5

 

Thurs 2/8: 5:00pm-6:15 (D222)

Friday 2/9: 3:00pm-4:15

Make-up 4:W3-1

More RPC/RMI (class notes)

DEMOs: SUNRPC and Java RMI

(RMI example code: MyLocal.java,

     MyRemote.java,

     MyRemoteImple.java)

 

 

Tues 2/13 

8: W5-1

 No Class -- Marty at Conference (Berlin)

 

Thurs 2/15

9: W5-2

 Finish up RPC/RMI (and CORBA)

Intro to Security (class notes)

7

Assignment #2

Assignment #1

Tues 2/20

10: W6-1

 “A Note on Distributed Computing”

More Security (class notes)

 

Thurs 2/22 

11: W6-2

 No Class -- Marty at Conference (Wash DC)

 

 

Tues 2/27

12: W7-1

Security (class notes)

 

 

 

Thurs 3/1 

13: W7-2

Finish Security (class notes)

 

Tues 3/6 

No Class -– Spring Break

 

Assignment #2

Tues 3/8

No Class –- Spring Break

 

 

Tues 3/13

14: W8-1

DFS (class notes)

8

 

Thurs 3/15

15: W8-2

DFS (class notes)

 

Thurs 3/15: 5:00pm-6:15 (D222)

Friday 3/16: 3:00pm-4:15

Make-up 8:W5-1

Finish DFS

Intro to Naming (class notes)

9

Tues 3/20

16: W9-1

Midterm (closed books, closed notes)

midterm prep guide

 

 

 

Thurs 3/22

17: W9-2

Web Services (class notes)

19

Assignment #3 

 

Tues 3/27

18: W10-1

Finish Naming (DNS)

 P2P (class notes)

10

Thurs 3/29

19: W10-2

 P2P (class notes)

 

Assignment #4

Assignment #3

Thurs 3/29: 5:00pm-6:15 (D222)

Friday 3/30: 3:00pm-4:15

Make-up 11:W6-2

Time and Global States (class notes)

11

 

 

Tues 4/3

20: W11-1

Time and Global States (class notes)

 

 

Thurs 4/5

21: W11-2

Time and Global States (class notes)

 

 Assignment #4

“comparable

project” due

(optional)

Tues 4/10

22: W12-1

Time and Global States

Coordination and Agreement (class notes)

12

 

 

Thurs 4/12

23: W12-2

Coordination and Agreement (class notes)

 

Tues 4/17

24: W13-1

Coordination and Agreement (class notes)

Assignment #5

Assignment #4

Thurs 4/19

25: W13-2

Coordination and Agreement (class notes)

 

Thurs 4/19: 5:00pm-6:15 (D222)

Friday 4/20: 3:00pm-4:15

Make-up 27:W14-2

Transactions Basics

Replication Basics (class notes)

13

15

Tues 4/24

26: W14-1

Google Day (!) (class notes)

·         The Anatomy of a Large-Scale Hypertextual Web Search Engine, Sergey Brin, Lawrence Page, Computer Networks, 1998

·         The Google File System, Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung, Proceedings of the 19th ACM Symposium on Operating Systems Principles, 2003

·         MapReduce: Simplified Data Processing on Large Clusters, Jeffrey Dean, Sanjay Ghemawat, OSDI'04: Sixth Symposium on Operating System Design and Implementation, 2004

 

Thurs 4/26

27: W14-2

No Class -- Marty at Conference

 

Tues 5/1

28: W15-1

Course Wrap-Up (class notes)

 

Assignment #5

Fri 5/11

 

Final Exam, 2pm-5pm

(closed books, closed notes) final prep guide