CMPSCI 677: Distributed Operating Systems Syllabus

Spring 2014 Syllabus and Course Information

Instructor: Prashant Shenoy
Office: Room 336, Computer Science Bldg
Office Hours: Monday 10:20-11:30 am, Room 336, or by appointment
Phone: (413) 577 0850
Fax: (413) 545 1249
Email: shenoy [at]

Contents: This course provides an in-depth examination of the principles of distributed systems in general, and distributed operating systems in particular. Covered topics include processes and threads, concurrent programming, distributed interprocess communication, distributed process scheduling, virtualization, distributed file systems, security in distributed systems, distributed middleware and applications such as the web and peer-to-peer systems. Some coverage of operating system principles for multiprocessors will also be included. A brief overview of advanced topics such as cloud computing, green computing, and mobile computing will be provided, time permitting.

Teaching assistant: Tian Guo
Email: tian [at]
Office hours: TBD

Grading assistant:Fory Zhou
Email: fory [at]

Prerequisites: Students should be able to easily program in a high-level language such as C, have had a course on data structures, be familiar with elements of computer architecture and have had previous exposure to the operating system concepts of processes, virtual memory, and scheduling. A previous course on uniprocessor operating systems (e.g., CMPSCI 377) will be helpful but not required.

Course Materials:

  1. Recommended Texts:

  2. Assigned readings from papers, magazines, manuals, and the WWW; most of this material will be made available online on the course web page; some material may be placed on reserve in the Physical Sciences library and made avilable to off campus students.

  3. Course home page: All course materials (handouts, lecture notes, lecture audio / video homeworks, assignments and solutions) will be posted on the course home page at
    As the semester goes along, the site will fill up with lots of useful other information, pointers to other sites, etc. Please make sure you check out and use this site frequently.

    Moodle: We will use moodle for homework and lab submssions and online quizzes. Solutions and grades to individual assignments and labs will also be posted on moodle.

  4. Class sections: Two sections of this class are being offered: a classroom and an online section. All students, regardless of the section, will be expected to do the same homeworks, labs and exams. All students have access to the instructor and TA during office hours. The main difference is that lectures will be delivered to students in the classroom for students in section 1 and via online video to students in the online section (section 2).

  5. Mailing list: A broadcast class email address, cs677 [at], has been created. If you send mail to this address, it will be broadcast to all of the students in the class, so please use it wisely and carefully. I will use it to broadcast information of interest to everyone. You might want to use it to broadcast a question, or give a pointer to material that you think will be of general interest. See documentation for more information about list etiquette.


Copyright notice: Many of the materials created for this course are the intellectual property of the instructor. This includes, but is not limited to, the syllabus, lectures, lecture videos, podcasts, and course notes. Except to the extent not protected by copyright law, any use, distribution or sale of such materials requires the permission of the instructor. Please be aware that it is a violation of university policy to reproduce, for distribution or sale, class lectures or class notes, unless copyright has been explicitly waived by the faculty member.
This page is online at
Prashant Shenoy
Last modified: Tue Jan 21 10:33:27 EST 2013