Prerequisites

CS 570 or consent of instructor.

Expected Preparation

CS 670 is intended to be an advanced graduate-level course in distributed systems. Students should have had a graduate course in operating systems, (equivalent to CS 570) covering distributed operating systems, multiprocessor operating systems, database operating systems and security issues in distributed system.

Student Learning Outcomes

Students will learn about distributed systems design and implementation. They will be exposed to various areas of research in distributed systems and mobile computing systems. They will learn about designing and implementing fault tolerant distributed systems. A student completing this course successfully will be able to pursue independent research in distributed systems.

Syllabus Information

Week by Week Course Outline:

This is a sample outline. Exact outline will be determined by the instructor offering this course.

Weeks

Topics

1

Introduction

2-3

Synchronization, distributed mutual exclusion

4

Deadlock Detection/Avoidance

5

Consistent global snapshot collection

6

Predicate detection

7

Failure recovery in distributed systems

8-9

Fault-tolerant consensus

10-11

Leader election algorithms, Agreement Protocols

12-13

Process Groups and group communication

14-15

Experimental distributed operating systems

Examinations

Exact details about examinations in this course will be determined by the instructor offering the course. Typically there will be one in-class, midterm examination during the semester and a two-hour final examination. Specific details will be made available in the syllabus at the start of each semester in which the course is offered.

Grading:

A student's grade will be determined by a weighted average of homework assignments, programming exercises, projects, hour examinations, and the final examination. The faculty offering the course will make the details available at the start of the course. A typical weighting is: