CS 3204: Operating Systems

Fall, 2000

CRN: 91246

This document is available in four formats at the following Uniform Resource Locators.

  1. LATEXoriginal

  2. HTML derived from LATEX original - this is the version you are currently viewing.

  3. PostScript derived from LATEXoriginal

  4. PDF derived from LATEXoriginal

Instructor: Craig Struble

Office: McBryde 521
Office Hours: 4:00-5:00 Monday and Thursday, 3:00-5:00 Wednesday, and by appointment
Phone: 231-5914

GTA: Surya Kodukula

Office: McBryde 133
Office Hours: To Be Determined

Class Meets: 11:00-12:15, McBryde 126, Tuesday and Thursday

Final Exam: 1:05-3:05, Monday, December 11, 2000


There will be NO exceptions.


This course covers both theoretical and practical issues underlying operating system design and implementation. Lectures focus primarily on theoretical and conceptual aspects of operating systems. Programming projects focus on the application of concepts and implementation details.



Nutt, Gary, Operating Systems: A Modern Perspective, Addison Wesley Longman, Inc., 2000, ISBN 0-201-61251-8


Additional references will be made available on the course web site.


Grading for this class will be on a 1000 point scale. The breakdown of the points is as follows:
Homework and Quizzes 200 points
Programming Assignment 1 100 points
Programming Assignment 2 150 points
Programming Assignment 3 150 points
Programming Assignment 4 150 points
Midterm 100 points
Final Exam 150 points

There is no formal curve given for any single project or test. The final grades will be determined based on your relative performance in the class. I do guarantee that anyone getting 900 points or higher receives at least an A-, 800 points at least a B-, 700 points at least a C-, etc.

Homework and Quizzes

Homework assignments will be given out throughout the course of the semester. Homeworks may include very short programming assignments, short answer questions, and lab exercises. Assignments are due in class one week from their handout date. No late assignments will be accepted.

In addition, pop quizzes based on the material in the book may be given during any class. Each quiz given will be worth 10 points. There will be no make up quizzes for any reason.

Programming Assignments

There are four programming assignments. The program grades consist of 70% for functionality and 30% for documentation and coding style. Documentation includes appropriate README files for building and executing your assignment as well as in code documentation. Design documentation may also be required for some assignments.

Assignments must be turned in on the due date and time given. Assignments MAY NOT be turned in late for any reason. Be sure to make frequent backups, use a source code control system such as CVS, and start early on the assignments. Hard drive crashes, power outages, and lab closings are not valid excuses for late assignments.

Further information regarding assignment submissions will be available on the home page. This information must also be followed to receive full credit on the program.

Programming Environment

All programming assignments must be implemented using ANSI C or ANSI C++ under FreeBSD or Linux. A reasonably recent version of each environment (e.g., FreeBSD 4.x or a Linux distribution based version 2.2.x of the kernel) is expected. These environments will also be used for several homework assignments.

NOTE: The GTA and instructor will be using the RedHat 6.2 Linux distribution for all assignments, and we will be able to answer environment specific questions only for that platform. You are on your own if you choose a different platform.


There will be one midterm and one final examination. These tests may be of any format. The tests cover material presented in class as well as in the textbook. No make up tests will be given unless the instructor is notified at least 24 hours in advance that you will be missing a test and a valid excuse must be given to warrant a make up test.

Honor Code

The VPI & SU honor code is in effect for this course. You may receive help only from the instructor, GTAs assigned to this course, and ACM or UPE tutors. Students may also discuss assignments with classmates in a general way, i.e., discussing the nature of the assignment. However, sharing source code, pseudo-code, or homework solutions is strictly prohibited. In addition, the CS Department's ``Policy on koofers, old programs, cheating, and computer use'' also applies to this course. Additional University, Departmental, and legal policies may also apply to this course; see the home page for details.


If any student needs special accommodations because of a documented disability or cultural practices, please contact the instructor during the first week of classes.

Course Schedule

Chapter Topic
1 Introduction
2 Using the Operating System
3 Operating System Organization
4 Computer Organization
6 Process Management
7 Scheduling
8 Basic Synchronization Principles
10 Deadlock
11 Memory Management
12 Virtual Memory
9 High-Level Synchronization
13 File Management
5 Device Management

Note, this schedule is subject to change at the instructor's discretion.

cstruble 2000-08-22