CS471 Operating Systems

Location: Robinson Hall A111
Meeting Time: Tuesday, Thursday 1:30 to 2:45
Instructor: Dr. Robert Simon
Office: 5322 Engineering Building
Phone: 703-993-1556
E-mail: simon AT gmu dot edu
Office Hours: Thursday 3:00 to 4:00, or by appointment


This course covers the principles of operating systems theory and practice. Fundamental concepts such as processes, synchronization, scheduling, memory management, file systems and security will be presented.


(Undergraduate level CS 310 Minimum Grade of C) and (Undergraduate level CS 367 Minimum Grade of C or Undergraduate level ECE 445 Minimum Grade of C). In order to succeed in the class you must be comfortable programming in C.


"Operating System Principles & Practice", by Thomas Anderson and Michael Dahlin ISBN 978-0-9856735-2-9 Recursive Books



All class materials, including lecture notes and programming assignments, are available through your Blackboard accounts.


There will be several programming projects. The assignments will involve designing and implementing parts of an actual operating system called OS/161. You need to be comfortable with programming in C to complete these assignments. Details concerning OS/161 will be presented in class.

Please NOTE


Your grade will be calcuated as follows:


Class attendance is not absolutely required but is highly recommended.

No early exams will be given. If you must miss an exam an makeup will be arranged at the discretion of the instructor, provided you have a written and verified excuse.

During the lectures, please make sure you avoid behavior that distracts others, including chatting, sleeping, or routinely arriving to class late. The use of any electronic device during class (including laptops, tablets, cell phones, smartphones, etc.) is not allowed. Violation of any of these policies will automatically result in points deducted from your final grade.


  1. Demonstrate knowledge about the role and purpose of the operating systems
  2. Be able to explain the features of operating systems found in different types of computer systems (e.g. mainframe systems, personal computers, multiprocessor systems, handheld systems)
  3. Demonstrate basic knowledge about the evolution of operating system concepts from early batch systems to modern multiuser/multiprocessor systems.
  4. Demonstrate knowledge about different approaches to operating system design and the involved trade-offs.
  5. Be able to explain the main performance evaluation criteria for computer systems and how the operating system design can have an impact on these.
  6. Show an understanding of the need for, and the potential run-time problems arising from, the concurrent operation of multiple tasks (processes/threads).
  7. Be able to solve the basic process synchronization problems, by also making use of basic data structures and programming techniques covered in previous courses.
  8. Demonstrate the knowledge about process scheduling, basic memory management and file system management techniques and their impact on the overall performance.
  9. Demonstrate the basic knowledge about distributed systems and how the ever-increasing networking features have affected (and are affecting) operating system design.
  10. Be able to identify potential threats to operating systems and the security features designed to guard against them.
  11. Be able to implement (in a high-level programming language such as C or Java) a suit of basic algorithms proposed for the main OS services such as memory management and process scheduling.
  12. Be able to implement a simple client/server application using system calls and distributed programming.


If you have a learning or physical difference that may affect your academic work, you will need to furnish appropriate documentation to GMU Disability Resource Center. If you qualify for accommodation, the DRC staff will give you a form detailing appropriate accommodations for your instructor. If you have such a condition, you must talk to the instructor during the first week of the term about the issue.

Disability Resource Center


The GMU Honor Code will be strictly enforced. Please make sure that you are familiar with it. We will discuss this further in class. Below is the link to the code.

Honor Code