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
Note: No credit if your project does not compile. Late
submissions of homeworks and programming assignments
will be penalized at 15% each day, and will not be
accepted after 3 days of the due date. The students are
responsible for keeping back-ups of their work while
they are working on an assignment.
Exams are closed book. The final exam will be cumulative;
that is, it will include all topics discussed during the
term. No early exams will be given. If you must miss an
exam, you should provide an official/verifiable proof of
why you are missing the exam BEFORE the exam. Once it is
validated, a makeup exam may be arranged.
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:
- 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;
- 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).