George Mason University

CS 471 -- Operating Systems
Spring 2007

T,R 10:30 - 11:45 pm, Innovation Hall 136

Prerequisites | Description | Readings | Topics | Grading | Lateness | Home Page

Professor Richard Carver
Course office hours: (After class) Thursday 3:30-4:15pm and before class
Sci & Tech II Room 343

C or better in CS330 and CS365

Students will learn about the design and operation of modern operating systems and middleware. In addition to understanding the technology involved, students will also understand the reasons behind design decisions made by different operating systems. They will become educated users of operating systems, able to understand the choices that each operating system makes in its design and how those choices relate to the needs of a user. The course covers multi-threaded programming and its implementation in the operating system, persistent storage, network communication, virtual memory, more abstract forms of communication provided by middleware, transaction systems, and security. Even if students will never expect to be involved in the development of an operating system, they will come out of the course with an understanding that enables them to write better software applications that use operating system and middleware services.

Max Hailperin, Operating Systems and Middleware: Supporting Controlled Interaction, Course Technology, 2006, ISBN 0534423698.

Students will be assigned readings in the textbook for each class. Students are expected to do each reading before coming to class. The readings are intended to give students grounding in the subject that will be further explained in the lecture. Lectures will be an opportunity to ask questions and explore the subjects in depth. The slides used in the course were prepared by the author of this book and will be available on the course web site.

SYLLABUS (tentative):

Introduction to OSs and Computer System Structures (Ch. 1)
Threads (Ch. 2)
Scheduling (Ch. 3)
Synchronization (Ch. 4)
Atomic Transactions (Ch. 5)
Virtual Memory (Ch. 6)
Processes and Protection (Ch. 7)
Networking (Ch. 9)
Messaging, RPC, and Web Services (Ch. 10)
Files and Other Persistent Storage (Ch. 8)
Security (Ch. 11)


Grades are based on two in-class exams (a midterm and a final), homework assignments, and programming projects. Grades will be numerical on the scale 0-100. Your final numerical grade, G, is computed as follows (tentatively):

G = (0.25 * Midterm) + (0.25 * Final_Exam) + (0.50 * Homework and Programming Assignments)

The following table is used to convert the final numerical grade to a letter grade:

G letter grade
[98,100] A+
[92,97] A
[90, 91] A-
[88, 89] B+
[82, 87] B
[80, 81] B-
[78, 79] C+
[70, 77] C
[60, 69] D
[0, 59] F

Grades will not be curved.


The late submission policy is as follows: assignments will be marked down 3% for each late day, for the first 3 days after the due date. Starting on the fourth day, assignments will be marked down 10% per day.


The TA for this course is Mr. Yuan Li.
Office Hours: T: 3pm - 7pm, ST2 365

The TA is available to answer technical questions about assignments. When sending a question to the TAs, please prefix the subject with CS471.


Violations of the honor code will result in severe penalties. Click here for the CS Department's Links to materials on the honor code, ethics and integrity.


CS471 has a home page (


  1. ACM's Special Interest Group in Operating Systems (SIGOPS).
  2. IEEE Computer Society's Distributed Systems Online.


See GMU Spring'07 Calendar.


Several tutorial modules have been developed by the Hyperlearning Center to supplement the material covered in this course: Interprocess Synchronization and Virtual Memory Module .

A series of OS workbenches developed in Java illustrate, through animation, several concepts in OS.


No collaboration is allowed among students in any of the individual exams. Please make sure you are aware of GMU's as well as the CS dept's Honor Code.