CS171 : Distributed Systems
-
Class
- Lecture : Tue-Th 9:30-10:45AM
- Place : Trailer 387, Room 103
- Discussion : Wed 4:00-4:50PM, Phelps 1448
- Prerequisite : CS170 (Operating Systems)
- URL: http://www.cs.ucsb.edu/~chiran/cs171
-
Instructor
- Chiranjeeb Buragohain (
)
- Office : Trailer 936 (located between Phelps and Lot 11 next to
bike path), Room 101/102
- Office Hours : Thursday 10:45AM-12:45PM
-
Teaching Assistant
- Nagender Bandi : nagender@cs.ucsb.edu
- Office Hours : Tuesdays 11AM-1PM at Phelps 1413B (TA Office)
-
Textbook
- Distributed Systems: Principles and Paradigms
by Andrew S. Tanenbaum, Maarten van Steen
- Assorted research papers
-
Syllabus
The goal of this course is to introduce students to the fundamental
issues in the design and implementation of distributed systems. The
concepts introduced have far reaching relevance starting from computer
architecture to the world wide web. The students will implement
interesting systems in Java and C.
- Introduction to distributed systems
- Communication : message passing, RPC
- Processes : threads, clients and servers
- Naming : name space and resolution, DNS
- Synchronization : clocks, leader election, mutual exclusion
- Consistency and Replication : consistency models
- Fault Tolerance : failure and recovery
- Security
- Distributed File Systems : NFS and Coda
- Distributed Hash Tables and others : P2P systems, Gnutella, Chord, GHT
-
Programming Assignments
- Submission instructions:
Use the turnin script on csil machines : turnin hw1@cs171 [files] [directories]
- Homework 1 : Due Apr 11th 2005 : 5:00PM
- Homework 2 : Due May 9th 2005 : 5:00PM
- Homework 3 : Due June 3rd 2005 : 4:00PM
You should pair up with another student to do this project. If you want to do it alone, that's fine too.
-
Class Notes
- Lecture 1 : Introduction
- Lecture 1 cont.
Lecture 2 : Communication, RPC
- Lecture 3 : Clock synchronization,
Lamport's paper
- Lecture 4 :
Efficient
solutions to the replicated log and dictionary problems
- Lecture 5 : Communication, message passing and streams
- Lecture 6 : Processes, server design, code and process migration
- Lecture 7 : Naming, name spaces and DNS
- Lecture 8 : Synchronization:
Leader election
- Lecture 9 : Mutual exclusion,
transactions
- Lecture 10 & 11 : P2P systems:
CAN,
Chord
,
Pastry
- Lecture 12 : Replication and Consistency
- Lecture 13 : Replication and
Consistency
- Lecture 14 : Fault Tolerance
- Lecture 15 : Falut Tolerane
- Lecture 16 : Security
- Lecture 17 : Security
- Lecture 18 : Distributed File
Systems, NFS and Coda