Worcester Polytechnic Institute

Computer Science Department

--------------------------------

CS 502
Operating Systems

Fall Semester 2009


Welcome to CS 502.  For this course, we will centralize the distribution of information to students here at the course web page. This page can be found on the WPI CS department web server at http://web.cs.wpi.edu/~jb/CS502/ We will also post any necessary announcements regarding class or the project work to the class email list.


*Basic Information
*Course Description
*Textbook
*Class Email List
*Lectures
*Significant Dates
*Class Example Code
*The Project

Basic Information

Professor: Jerry Breecher, jb@cs.wpi.edu
Meeting Time: Thursday 6:00 p.m. - 8:50 p.m.
Location:
Office Hours: By appointment - usually before or after class; 24 hour response by email

Course Description

This course provides a graduate-level introduction to the theory and design of multi-programmed operating systems. Some of the topic areas covered include concurrent processes, process communication, input/output supervisors, memory management, resource allocation, and process scheduling. Selected topics in distributed operating systems will also be addressed.

Textbook

Silberschatz, Abraham, Peter B. Glavin and Greg Gagne, Operating System Concepts, Eighth Edition, John Wiley ISBN: 978-0-470-12872-5.  I expect that you can use the Seventh edition at a considerably lower price.

Class Email List

The class email list is cs502@cs.wpi.edu.   This list is maintained by the majordomo server at cs.wpi.edu.  To add yourself to the cs502 mailing list, send an email message to majordomo@cs.wpi.edu whose body contains the line 'subscribe cs502' (again, without the quotes).  Note that this uses the reply_to field in the incoming message to add to the mailing list. 

Final Grade

Your final grade will be based on   Projects = 50%, Final Exam = 50%.

Lectures

In the Table below are pointers to the notes for the course.  The formats available can be read by Microsoft PowerPoint (.ppt) or downloaded to a postscript printer (.ps).  Lectures generally will be from these notes. Feel free to print them out and use them during class to avoid extensive scribbling.

Lecture Title PowerPoint
Overview Overview.ppt
Components Structures.ppt
Project Start_Here.ppt
Processes Processes.ppt
Threads Threads.ppt
Scheduling
Scheduling.ppt
Synchronization
Synchronization.ppt
Deadlocks Deadlocks.ppt
Memory Management Mem_Mgmt.ppt
Virtual Memory Virtual_Memory.ppt   Intel.ppt
File Systems File_Sys.ppt
IO Systems IO_Systems.ppt
Distributed Systems Dist_Sys.ppt
Distributed File System Dist_File_Sys.ppt
Distributed Coordination Dist_Coord.ppt
Security Security.ppt

Significant Dates


Date
Event
September 17 Test 0 Works Successfully
October 29
Project Part 1 Due
December 13, 11:59PM Project Part 2 Due
December 17
Final Exam



Class Example Code

This link will take you to information about a number of programs and code used as Class Demonstrations

The Project

A significant component of the CS 502 course is the course project, in which you will design and implement a basic operating system for a Z502 processor (this is a hypothetical processor architecture and a simulator is provided). The overall project is divided into two project phases.  The first phase builds necessary data structures and implements multi-program scheduling.  The second phase adds virtual memory management to the core implemented in phase 1. 

The project requires substantial programming in C, (3 to 4 thousand lines of code is not atypical), thus students should already have a sound programming foundation. CS 502 is not the place to "pick up" C. For more information, including project phase assignments and Z502 documentation, see the

Project Web Page