CS 571, Operating Systems - Fall 2009

[Class Schedule] [Assignments] [Projects] [Resources]

Instructor: Angelos Stavrou
Lecture: Monday 4:30 pm - 7:10pm
Innovation Hall, room 223
Office Hours: Monday 2:30 - 4:30pm and by appointment
Email: astavrou(_)gmu.edu

Teaching Assistant: Changwei Liu
Engineering building 4456
Office Hours: Tuesday, 2:00– 4:00pm; Thursday, 3:00 – 5:00pm
Email: cliu6(_)gmu.edu

se Description:

This course covers the principles of operating systems theory and practice. Fundamental concepts such as processes, synchronization, scheduling and memory management will be presented. Another emphasis will be on the principles of
distributed operating systems and virtualization technologies.

Topics Covered:

  • Introduction, Threads and Processes
  • Interprocess Communication, Synchronization
  • CPU Scheduling
  • Memory Management
  • File and I/0 Systems
  • Protection and Security
  • Distributed System Structures
  • Distributed Coordination
  • Fault Tolerance,  Real-time Computing
  • Process and Operating System Virtualization


CS 310 and CS 465, or equivalent. A solid background in Computer Architecture is required. The coursework will include substantial programming projects; in order to be able to work on these, the students must be comfortable with C/C++ or Java programming languages.


Operating System Concepts, 8th Edition (or 7th Edition), Abraham Silberschatz, Yale University Peter Baer Galvin, Corporate Technologies Greg Gagne, Westminster College, ISBN: 978-0-470-12872-5 ©2009 Willey
Available by: [GMU Bookstore] [Willey] [Amazon] [Author's site]

Modern Operating Systems, 3/E Andrew S. Tanenbaum. ISBN-10: 0136006639 ISBN-13: 9780136006633 Prentice Hall Available by: [GMU Bookstore] [Prentice Hall] [Amazon]

  • Midterm: 25%
  • Programming Projects: 40%
  • Final: 35%

The students must achieve a total score of at least 85 (out of 100) to be considered for an A. No early exams will be given and make-up exams are strongly discouraged. A student should present an official and verifiable excuse to miss an exam (such as a doctor's note). However, we will be offering extra credit assignments to help students to achieve better understanding (and final score).

Computer Accounts:

All students should have accounts on the central Mason Unix system mason.gmu.edu (also known as osf1.gmu.edu)
and on IT&E Unix cluster zeus.ite.gmu.edu (Instructions and related links are here). Please read the FAQ if you have any questions. Students can work in IT&E computer labs for programming projects during the specified hours.

Please read the University's Academic Honesty Page and GMU Honor Code.

Disability Statement

If you have a documented learning disability or other condition that may affect academic performance you should:
1) Make sure this documentation is on file with the Office of Disability Services:
(SUB I, Rm. 222; 993-2474; www.gmu.edu/student/drc) to determine the accommodations you need;
2) Talk with me to discuss your accommodation needs.


Assignment 1 [Due Oct 12th, Oct 16th 11:59pm]
Assignment 2 [Due Oct 30th, Nov 2nd 11:59pm]


[C/C++ Projects] [Java Projects] [Due Dec 13th 11:59pm]

Class Schedule

Week & Date
Course Lectures & Readings (Tentative)

Week 1, Aug. 31

Introduction and Class Mechanics [Lecture pdf] (Read Chapters 1,2)

Week 2, Sep. 7
No class

No Class Labor Day, University closed
Week 3, Sep. 14

Processes and Threads [Lecture pdf] (Read Chapters 3,4)
Programming Resources: Free Programming Books by Bruce Eckel [C++ Book] [Java Book]
Networking with multi-processing using fork and threads (Java):
Use the Resources page for further help

Week 4, Sep. 21
Processes and Threads (II) [Lecture pdf] (Read Chapters 3,4) Assignment 1 Posted
Programming Resources: Free Programming Books by Bruce Eckel [C++ Book] [Java Book]
Networking with multi-processing using fork and threads (Java):
Slides for Java [pdf] [Sample programs] & Slides C [pdf] [Sample programs]

Use the Resources page for further help
Week 5, Sep. 28
Process Synchronization and Race Conditions [Lecture PDF] (Read Chapters 4, 5 ,7 (7.1-7.2))
Week 6, Oct. 5
CPU Scheduling [Lecture pdf] (Read Chapter 5)
Week 7, Oct. 12
Meet Tues 13
Columbus Day

CPU Scheduling (Cont) [Lecture pdf] and Deadlocks [Lecture PDF] (Read Chapter 6)
Assignment 1
Due on Friday the 16th [11:59pm]
Week 8, Oct. 19
Midterm Review [Review PDF] & Memory Management [Lecture PDF] - Assignment 2
Week 9, Oct. 26

Class Midterm (Sample Questions & Solutions) (Extra Credit Solutions)
Week 10, Nov. 2
Midterm Discussion & Virtual Memory [Lecture PDF]
Assignment 2 due Nov 2, 11:59pm
Week 11, Nov. 9
Team Project Discussion & Meetings
[C/C++ Projects] [
Java Projects] [Due Dec 7th 11:59pm]
Week 12, Nov. 16
File Systems & Performance [Lecture PDF]
Week 13, Nov. 23

Team Project Discussions - Network File Systems: the use of RPC & RMI [Lecture PDF]

Optional Supplemental Readings:
Large-Scale Distributed Systems at Google: Current Systems and Future DirectionsJeffrey Dean, Google [Slides]

Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung, "The Google File System", Proceedings of the 19th ACM Symposium on Operating Systems Principles, Bolton Landing, New York, October 19-22, 2003.

Jeffrey Dean and Sanjay Ghemawat, "MapReduce: Simplified Data Processing on Large Clusters", Proceedings of the Sixth Symposium on Operating Systems Design and Implementation (OSDI), San Francisco, California, December 6-8, 2004.

Week 14, Nov. 30
Security & Protection Mechanisms [Lecture PDF]
Week 15, Dec. 7
Virtual Machine Monitors [Lecture PDF] - Final Review [PDF]
Week 16, Dec. 14
Class Final (Project is Due) (Sample Questions & Solutions)
Acknowledgements: This course borrows material from an earier version of the course designed by Prof. Hakan Aydin
Home -  Publications - Teaching - CV - Contact

Last updated:
Plea9se feel free to send your comments and suggestions to Angelos Stavrou.
© 2009 Angelos Stavrou, Computer Science Department, George Mason University.