Syllabus: Operating Systems

CS 377 Operating Systems (Fall 2002)

Course Materials


This course will provide an introduction to operating system design and implementation. The operating system provides a well-known, convenient, and efficient interface between user programs and the bare hardware of the computer on which they run. The operating system is responsible for allowing resources (e.g., disks, networks, and processors) to be shared, providing common services needed by many different programs (e.g., file service, the ability to start or stop processes, and access to the printer), and protecting individual programs from one another.

The course will start with a brief historical perspective of the evolution of operating systems over the last fifty years, and then cover the major components of most operating systems. This discussion will cover the tradeoffs that can be made between performance and functionality during the design and implementation of an operating system. Particular emphasis will be given to three major OS subsystems: process management (processes, threads, CPU scheduling, synchronization, and deadlock), memory management (segmentation, paging, swapping), file systems, and operating system support for distributed systems.


CMPSCI 187: Programming with Data Structures (we assume that you are comfortable with Java), and CMPSCI 201: Architecture & Assembly Language, or equivalent.

Requirements and Grading

You are expected to attend class regularly, read the assigned reading before class, and participate in class discussions. The course will be graded on a curve.

Late Policies

This course covers a lot of material. Because late assignments will seriously impact your ability to follow the next section of the course, I strongly encourage you to be on time in turning them in. To that end, late programming assignments will be penalized 10% per day, up to 4 days (no credit after 4 days). Late homework assignments will not be accepted (no exceptions).

Cooperation and Cheating

Feel free to discuss homework and labs with other members of the class, myself, or the TA. However, do not look at or copy another student's solution to a homework assignment or a lab. Your discussions must be limited to achieving an understanding of the problem - but the solution that you give must be your own. Exchanging, or downloading from the net, homework or lab solutions is cheating. If caught, you will be reported to the University and you will lose credit for the course.

Copyright notice: Many of the materials created for this course are the intellectual property of Prashant Shenoy and Andrew Fagg. This includes, but is not limited to, the syllabus, lectures and course notes. Except to the extent not protected by copyright law, any use, distribution or sale of such materials requires the permission of the instructor. Please be aware that it is a violation of university policy to reproduce, for distribution or sale, class lectures or class notes, unless copyright has been explicitly waived by the faculty member.

This page is online at
Andrew H. Fagg
Last modified: Fri Sep 20 14:30:37 2002