Updated on 16 May 2014

You may order a book from the CSU bookstore at http://books.sc.colostate.edu/SelectTermDept.aspx


Advanced topics in concurrency, deadlock protection, scheduling, computer system modeling, virtual memory management, distributed and interprocess communication, distributed transactions and computations, and distributed system design from the operating systems viewpoint.

When & Where

This course is a completely Web-based course. It is online only.
However, it is not a self-paced course. Students need to interact with each other in a timely fashion.


Carolyn J. C. Schauble
            Office Hours:   By appointment


The official prerequisite is CS 451: Operating Systems (which is offered as an online course in the Fall semester).
Grade of C or better   (Strictly enforced).

Students are expected to know and understand the fundamentals of operating systems as taught in an year-long course using a text such as Operating System Concepts by Silberschatz, Galvin & Gagne.

Topics covered should include design and implementation of operating systems, processes, concurrency, deadlock, file systems, and distributed operating systems.

Students are also expected to be able to program in both Java and C/C++ in a Unix environment.

Please consult the instructor if you are unsure of your background.

Reading Material


Required: Distributed Systems: Concepts and Design, Fifth Edition by
George Coulouris, Jean Dollimore, Tim Kindberg and Gordon Blair,
Addison-Wesley (2012), ISBN-10: 0-13-214301-1, ISBN-13: 9780132143011.

Note: This text is available as an eTextbook through CourseSmart.com.

You may purchase this text through the Colorado State bookstore. The URL for distance (and even local students) to order textbooks online is http://books.sc.colostate.edu/SelectTermDept.aspx. Students can choose if they want the course materials mailed to them, or if they want to pick them up in the store.

You may also find an undergraduate operating systems textbook useful.

CS 551 DL RamCT (BlackboardLearn) Page

All other course material, including course announcements, discussions, grades, lecture notes, and assignments, can be found via the RamCT (BlackboardLearn) page for the course: CS 551 DL.

The RamCT (BlackboardLearn) portion of this course is password-protected and requires the student to have a CSU electronic ID (eID or eName). To obtain an eID, see http://eid.colostate.edu/ .

Topic Outline

  (Not necessarily in this order)
  1. Introduction and Review of Operating Systems
    1. Definitions
    2. Hardware concepts
    3. Software concepts
    4. The client-server model
  2. Communication
    1. Layered protocols
    2. Remote procedure call
    3. Remote object invocations
    4. Message-oriented communication
    5. Stream-oriented communication
  3. Processes
    1. Threads
    2. Clients
    3. Servers
    4. Code migration
    5. Software agents
  4. Naming
    1. Naming entities
    2. Locating mobile entities
    3. Removing unreferenced entities
  5. Synchronization
    1. Clock synchronization
    2. Logical clocks
    3. Global state
    4. Election algorithms
    5. Mutual exclusion
    6. Distributed Transactions
  6. Consistency and Replication
    1. Distribution protocols
    2. Consistency protocols
  7. Fault Tolerance
    1. Introduction to fault tolerance
    2. Process resilience
    3. Distributed commit
    4. Recovery
  8. Security
    1. Introduction to security
    2. Secure channels
    3. Access Control
    4. Security Management
  9. Distributed Object-Based Systems
    1. Some case studies
  10. Distributed File Systems
    1. Some case studies

Class Preparation and Attendance:

This course is completely Web-based.
All interaction between students and the instructor is via the Internet in an asynchronous manner
    (meaning that the class members do not all need to be logged in at the same time).

However, there are assignments due every week:
  • Reading Assignments:
    • from the Web pages   (mainly copies of classic papers in the area)
    • from the textbook

  • Reading Reports:
    • one-page reports on the classic papers assigned for reading,
          in a specific format defined in the course.
    • weekly
    • submitted over the Internet

  • Quizzes:
    • completed on the Web
    • taken weekly (or more often)
    • graded, but also useful for self-assessment
    • most quizzes may be taken more than once
    • the grades are recorded automatically (except for surveys).

  • Class Discussions:
    • asynchronous interaction with other class members
    • via the class discussion/bulletin board
    • required at least once a week
          and sometimes more often
    • the number of postings per student per topic is automatically recorded.

  • Programming and Homework Assignments:
    • approximately four during the semester
    • submitted electronically
    • programs must compile and run on the CS Linux Lab machines.

The student is responsible for checking the RamCT (BlackboardLearn) Calendar
for deadlines and due dates,
as well as the RamCT (BlackboardLearn) Announcements board.

The course schedule follows the normal CSU summer (12-week) semester schedule.

Tests and Examinations


Take-home Exams consist of a number of problems and
must be taken within a certain time period.
The exams are submitted via the RamCT (BlackboardLearn) submission facility.

Students must sign an agreement certifying
that they are taking the exam in solitude.

No proctor is required.

RamCT Drill Quizzes

There are a number of online drill quizzes within the RamCT pages
to help students learn basic concepts and definitions.
These do not require a proctor and may be taken more than once.


Written Work

Much of the work for the course should be submitted electronically.
Computer-aided drawing tools may be used when appropriate.

Essays and answers to discussion questions and other assignments must be coherent, succinct, readable, using grammatically correct English prose.
Part of the grading for such questions reflects this.

Essays and answers to discussion questions on examinations need only list the relevant points.
The student may not have time to write more than one draft, and so the instructor must be lenient on grammar, spelling, and style.

All work must be neat and legible.
Illegible or poorly formatted work receives no credit.
The instructor reserves the right to define what is or is not legible or easily read.

Late Work / Regrades

Go to Assignments in the left frame of the RamCT (BlackboardLearn) page.
From there, click on Comments on Homework and Programming Assignments and on Late and Regrade Policies.

Students are responsible for knowing and understanding these policies.

Course Resources

Course Files

Online copies of handouts, assignments, and other documents for the course are available through the course RamCT (BlackboardLearn) page.
Current announcements and discussions are accessible through this page as well.
The student should access the RamCT (BlackboardLearn) page frequently, several times a week.

Computing Resources

Some lab assignments may require Java programming.
However, some programs may need to be done in C or C++ instead.
Each assignment should clearly state the programming language to be used.

If you have not programmed in Java or C/C++ before, drop this course now and spend this semester learning these languages.
You cannot pick up such languages well enough during the course to be able to complete your programming assignments successfully.
Experience with just Java or C or C++ programming might not be sufficient.

Programming assignments should be tested via telnet or ssh on one of the Computer Science lab machines, to which students are assigned accounts.
The instructor or graduate teaching assistant runs your program on these machines to determine your grade.

Other work may be done on any computing equipment to which you have access.

Minimal Equipment Requirements (Hardware and Software)

Students are expected to have adequate computing resources
      in order to perform the following tasks:
  • To easily access the RamCT (BlackboardLearn) page regularly
      (Caution: some firewalls and some browsers may cause problems)
  • To create, edit, compile, debug, and execute both Java and C/C++ programs

Grading   (Subject to change)

A student's grade is based on
  • reading report assignments   (36%)
  • homework assignments   (20%)
  • discussion assignments   (12%)
  • RamCT (BlackboardLearn) online drill quizzes   (12%)
  • a comprehensive final exam   (20%)

Final letter grades are based on the relative distribution of total scores
    For instance, one past semester was graded as below:
93 and up   A   84 up to 91   B   73 up to 82   C  
92 up to 93   A-   83 up to 84   B-   62 up to 73   D  
91 up to 92   B+   82 up to 83   C+   below 62   F  

Comparison to Traditional Delivery

Student Experience

In an online version of this course, the student has the course text, along with online lectures giving examples and explanations related to the course material.
Automatically-graded online quizzes provide instant feedback on student comprehension.

Part of the online student's grade is based on their contributions to course topic discussions in the RamCT (BlackboardLearn) discussion groups.
These asynchronous discussions may be richer and more detailed than for an in-class discussion, as the students have time to think out and prepare their discussions, including citations.
Furthermore, every student is required to participate in every discussion.

The online student may ask questions at any time via email or the discussion groups, whenever they are having trouble.
The instructor and/or teaching assistant will usually check their email and the discussion group messages daily.

This course may be more interactive for the online students than for many students in on-campus courses who sit in the back of the room and read the newspaper or play games on their laptop.

Content Delivery

The course is delivered online using RamCT (BlackboardLearn), and it follows the CSU 12-week summer semester schedule.


Students interact with the instructor via email and the discussion groups.
Students interact with each other using the discussion groups; they may also use email.

Student Assessment

The students will complete an take-home final examination.
This must be submitted over the Internet via RamCT (BlackBoardLearn), just like earlier homework assignments.
Each student must create his own solution to the final examination in solitude; a statement certifying this must be submitted as well.

Time Commitment

The online course covers the same material that would be covered in an on-campus version of the course.
The assignments are similar.
The structured discussions are beyond what is required of students on campus.
However, the online student does not have to attend classes.


Students are expected to have adequate computing resources to easily access the RamCT (BlackboardLearn) page regularly,
as well as to create, edit, compile, debug, and execute a variety of programs for assignments.
This can be via a personal computer connected to the Internet, or with a terminal connected to a local area network that is connected to the Internet.
Any assigned programs can be developed and executed on the CS department's lab computers, but the student must have a means of accessing these computers, possibly via ssh over the Internet.

Other Policies

Policies on cheating, plagiarism, incomplete grades, attendance, discrimination, sexual harassment, and student grievances are described in the Student Information Guide (http://www.CS.ColoState.EDU/advising/student-info.html).
All other matters follow the policies set in the current Colorado State University General Catalog.
Students are responsible for all the information in these documents.