CS 471: Operating Systems – Fall 2017


Section
002
Location
Innovation Hall 204
Meeting time
MW 1:30pm - 2:45pm
Instructor
Dr. Yue Cheng
Office
5324 Engineering Building
Email
yuecheng _AT_ gmu.edu
Office hours
W 3pm - 5pm

Description

This course covers the concepts and design principles of modern operating systems, both from theory and practical aspects. Fundamental concepts such as processes, synchronization, scheduling and memory management will be presented.


Prerequisites

Grade of C or better in CS310 and CS 367 (or equivalent). All students must be comfortable with programming in the C language. This is a strong requirement.


Teaching assistant (TA)

Panneer Selva Santhalingam

Email
psanthal _AT_ gmu.edu
Office hours
MF 3pm - 5pm

Textbooks

The required textbook for this class is:

  • Operating Systems Principles and Practice, by Thomas Anderson and Michael Dahlin, Second Edition. ISBN: 978-0-9856735-2-9, Recursive Books, Ltd.

Recommended textbooks:

  • Operating Systems: Three Easy Pieces, by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, Arpaci-Dusseau, July, 2017 (v 0.92)
  • Operating System Concepts, by Silberschatz, Galvin and Gagne (9th Edition, John Wiley & Sons 2012, ISBN 978-1-118-06333-0).

Course outcomes

Upon completion of this course, the students should be able to:

  • Demonstrate knowledge about the role and purpose of the operating systems
  • 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)
  • Demonstrate basic knowledge about the evolution of operating system concepts from early batch systems to today's sophisticated multiuser/multiprocessor systems
  • Demonstrate knowledge about different approaches to operating system design and the involved trade-offs
  • Be able to explain the main performance evaluation criteria for computer systems and how the operating system design can have an impact on these
  • Show an understanding of the need for the concurrent operation of multiple tasks (processes/threads) and an ability to solve basic process synchronization problems that arise from concurrent operation settings
  • Demonstrate the knowledge about process scheduling, basic memory management, and file system management techniques and their impact on the overall performance
  • Demonstrate the basic knowledge about distributed systems and how the ever increasing networking features have affected (and are affecting) operating system design
  • Be able to implement a suite of basic algorithms proposed for the main OS services such as memory management and process scheduling

Topics

  • Introduction
  • Processes and threads
  • Synchronization and deadlocks
  • CPU scheduling
  • Memory Management and virtual memory
  • File, I/O, and storage systems
  • Virtual machines
  • Distributed systems
  • Protection and security

Course materials

All course materials, including lecture notes, are available through the course homepage at https://cs.gmu.edu/~yuecheng/teaching/cs471_fall17.html.


Projects

There will be several programming projects in using the Operating System OS/161. All projects will be programmed using the C language. You need to be comfortable with programming in C to complete these assignments. Details concerning OS/161 will be presented in class. All students should have accounts on the VSE Unix cluster (aka zeus.vse.gmu.edu). Instructions and related links can be found here. Your programs will be tested and graded on the zeus server.


Grading policy

Your grade will be calcuated as follows:

  • 45% Homeworks and Programming Projects
  • 25% Midterm Exam
  • 30% Final Exam

Academic integrity

All students must adhere to the GMU Honor Code and the Computer Science Department's Honor Code Policies. The students are supposed to work individually on the homeworks, assignments projects, unless told otherwise. We reserve the right to use MOSS to detect plagiarism. Violation of the Honor Code will result in an F.


Accommodations for disabilities

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 Office for Disability Services (SUB I, Rm. 4205; 993-2474; http://ods.gmu.edu) to determine the accommodations you need;
  2. talk with the instructor within the first week of the semester to discuss any accommodation needs.

Acknowledgments

This course contains matertials from Dr. Songqing Chen (GMU), Dr. Daniel Barbara (GMU), Dr. Hakan Aydin (GMU), Dr. Remzi Arpaci-Dusseau (U. Wisconsin), and Dr. David Mazières (Stanford).