WPI Worcester Polytechnic Institute

Computer Science Department

Operating Systems

CS 502
Spring 1998


Course Information

Professor: Mark Claypool
email: claypool@cs.wpi.edu
office hours:
place: Fuller Labs, room 236
phone: x5622

Email aliases:
class: cs502m@cs.wpi.edu
instructor: cs502m_ta@cs.wpi.edu

More detailed information can be found here, including: time and place, purpose, prerequisites, books, grading, cheating, and computer systems and labs.

Topics and Timeline

Here is the list of topics covered in this course. They will be mapped to chapters from the text as the course progresses.

You might check out the assignment timeline to help you plan for exams, papers and projects.


Slides from the in-class lectures will be available shortly after they are presented, depending upon how things go:

Also, I gave some tips on "How to Give a Talk" that you might find useful for paper and project presentations:

Programming Project

New! Check out the project presentation schedule.

The programming project will be an implementation project in that you will write code to explore, measure or enhance some operating system feature. There is great latitude in the focus of the project.

You will work in a group of two for the project. I'd prefer to limit the groups to only 2, but groups of three are also possible. If you really want a group with a different number of students, come talk to me. Working in groups will give you valuable "real-world" experience as well as provide you with a "built-in" source for help.

Projects must be ok'ed by the instructor before hand. You will submit a project proposal in the first couple weeks of the course. The project proposal should specify:

  1. Motivation - why is your project interesting?
  2. Problem - what does your project explore, measure or enhance?
  3. Related Work - what have others done that is similar to your project? You do not need an exhaustive related work section, but you should mention similar areas or ideas.
  4. Approach - what is your approach to solve your problem? Describe briefly the design of your solution. Provide any implementation details such as language, platform, etc.
  5. Evaluation - what must you do to get an A, B or C grade?

The main product of your project is a writeup. Your writeup includes all of steps 1-5 above. In addition, your writeup should have:

Include figures wherever appropriate. Keep in mind that the clearer your writeup, the clearer my understanding of what you did and the better your grade.

If appropriate, I encourage you to demo your project to me. Especially if you feel showing me your system, interface or experiments in action will help me understand your project (and your grade).

Part of your project grade will include an in-class presentation. Presentations will be a short summary of the problem, your approach and conclusions.

You are strongly encouraged to think of your own programming projects. However, if you are stuck or just want to see a sample project idea, check out this list of possible projects.

Paper Presentation

Students will be expected to select and present an OS research paper. Papers can be presented in groups of 2-3. You'll have the paper approved by me in the first couple weeks of the course. Presentations will be scheduled according to their relation to the course material. Presentations will be roughly 1/2 long, including discussion time. Part of the presentation will include submitting 2-3 questions that are appropriate for a final exam question on your paper.

You are encouraged to seek out papers for presentations on your own. You may select any article you like from any journal, magazine, or other source you think is suitable. This includes articles that are available on the web. Url's that point to entire sites, topics, news groups, or companies are not suitable (just url's to specific articles). However, if you are unable to find an appropriate paper you may select from this list of possible papers.

Here is the current paper presentation schedule.


Here are any code samples discusses in class, practice exams or any other demonstration-type class materials:

Here is a topic outline for the mid-semester exam. You might also check out the practice exam (with solution).

Here are the code samples for the simple operating system we have been looking at:

Here are some samples showing the use of software signals:

Here is a simple "Up Yours" client-server example that shows the use of pthreads. They use some wrappers to make sockets easier:

Demos that have separate add and subtract threads that access a global variable:

Other code samples:

OS Hotlinks


Linux is a completely free Unix operating system. Linux runs primarily on 386/486/Pentium PC's but has been ported to various other architectures. If you like Unix, want to learn more about system administration and have access to a PC, I recommend checking it out. Read a short info sheet or a more detailed info sheet for more information.

I, Cringely

A weekly column by Robert X. Cringely that provides a humorous but profound look at the world of Information Technology.
"What makes Cringely such an interesting writer is the way he combines a solid understanding of technology, the ability to explain it simply, and an irreverence for those who, at the highest levels, hawk it" IEEE Spectrum, May 1997.


Although this system is too advanced for an intro course on operating systems, keen students may like to look further into the Nachos software. Some useful course material (e.g. slides, notes, Java simulations, etc.) includes: You can also have a look at the Yahoo! Operating Systems pages and related WWW pages: Or perhaps you would like to know more about some of the companies involved in Operating Systems:

[Return to the WPI Homepage] [Return to the CS Homepage] [Return to Mark Claypool's Homepage]

Mark L. Claypool (claypool@cs.wpi.edu)