Syllabus: Operating Systems

CS 377 Operating Systems (Spring 2003)

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.

Meeting Times and Location

We will use Mondays 1:25-2:15 and Wednesdays 1:25-3:05 as our main lecture time and Fridays 1:25-2:15 as our discussion time.

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). In addition, assignments not handed in using the prescribed method will not be accepted.

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 receive a failing grade for the course. For more details, please see the Code of Student Conduct.

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: Tue Jan 28 14:30:39 2003