Syllabus: Operating Systems
CS 377 Operating Systems
Course Materials
-
Course Web page:
http://www.cs.umass.edu/~shenoy/courses/fall99
- Lecture notes:
Lecure notes will be handed out in each class. If you miss a class,
you may pick them up from the main office or use the online version.
The most up-to-date version of the
course schedule,
syllabus (which is subject to change), all
lecure notes,
homeworks and labs
will be available from the course web page.
-
Text: Operating System Concepts, 5th ed. Silberschatz and Galvin,
John Wiley (formerly published by Addison Wesley)
Also recommended: The C++ Programming Language, Third edition,
Bjarne Stroustrup, Addison Wesley
The following materials will be on Reserve in the Physical Sciences
Library: (A complete list is available
here)
- Class Videos
- Silberschatz and Galvin, Operating System Concepts
- Tanenbaum, Modern Operating Systems
- Assorted C++ and Unix references
-
Lab Materials
- Other useful websites:
Description
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.
Prerequisites
CMPSCI 187: Programming with Data Structures, and CMPSCI 201:
Architecture & Assembly Language, or equivalent.
Requirements and Grading
- 6 Homeworks & Several Pop Quizes (20%)
- 3 Programming Projects (40%)
- 3 Exams (40%)
- Exam 1: first 1/3 of course
- Exam 2: second 1/3 of course
- Final Exam: 50% on final 1/3 of course and 50% over first 2/3s
of course
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 and late assignments will
seriously impact your ability to learn the next section of the course.
Late programming assignments will be penalized 10\% per day, up to 4
days. Late homeworks will not be accepted (no exceptions).
Please try to finish your assignments and homeworks on time.
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
students solution to a homework or lab. I am not concerned with
how you come to understand the problem and how to solve it, but once
you have the background necessary to solve it, you must provide your
own solution. Exchanging homework or lab solutions is cheating and
will be reported to the University, and you will lose credit for the course.
This page is online at http://www.cs.umass.edu/~shenoy/courses/fall99/syllabus.html
Prashant Shenoy
Last modified: Mon Aug 30 15:51:14 EDT 1999