CSE 221 Spring 1999

Operating Systems

Professor Keith Marzullo

Office: APM 4832
Phone: 534-3729
Email: marzullo@cs.ucsd.edu
Office Hours: Tuesday and Thursday 9:30-10:30 or by appointment.

I read my e-mail fairly often, and so you may find sending me a message to be the fastest way of getting an answer to a simple question or of setting up a private meeting.


Course Objectives

The purpose of this course is to teach computer software system structures from a design point of view. We will look at different structuring techniques, and we will examine their usage in both important historical systems and in modern systems.

In addition to learning about different system structures and different operating systems, you should learn:

Course Prerequisites

You must have already taken a good undergraduate course in Operating Systems. This course should have covered the major Operating System subsystems such as multiprocessing, virtual memory, file systems, communications. You should also have a good grounding in concurrency and the basics of security.

Lectures

The class meets on Tuesdays and Thursdays in University Center, Room 413, from 3:55 to 5:15. Attendence of lectures is mandatory, since much of your grade will be derived from your performance during this period.

The lectures in this class are unusual, in that I will be doing very little of the talking. Instead, you will be expected to have read two papers before each lecture (I will supply the papers). Read them carefully, because I will ask questions about the paper and choose someone at random to answer each questions. Thus, my role in the class is to direct the discussion rather than to present the material in a digested format.

Grading

In-class discussion:  40%
Reviews: 20%
Project: 40%
Total: 100%

Project

The project is due May 17.

The goal of this project is to deepen your knowledge in one area of computer systems research. Please form groups of three or four students for this project.

I would like your group to identify a recent research paper (1995 or later) in computer systems. After you have read the paper and cleared the paper with me, construct a list of papers that are concerned with the topic of the paper. You can start this list by looking at the references of the paper, but you will most likely have to include some papers outside of the transitive closure of the references.

Having compiled this list of papers (the list should contain six to ten papers), read these papers in order to learn about the field of research the original paper addressed and discuss the papers among yourselves (and with me, if you wish).

You'll then be in a position to start the written part of your project. Write a six-to-ten page paper based on your group's reading and discussion. This paper can be structured in one of several ways:

You can choose the original paper however you wish, but I would like you to show me the paper first before proceeding.

You might consider choosing a topic from the research interests of the systems faculty here. Here's a list of the faculty who do work in software systems and a few words about their research interests. Feel free to approach them directly for suggestions, or visit their web pages, or use MELVYL to identify some of their recent papers, or come talk with me.

Reviews

The last lecture will be devoted to the presentation of three of the papers produced by you. We will choose which papers to present by first having each of you review each other's papers. We will then run a program committee meeting in which we discuss the reviews and select the papers to be presented.