CSE 221: Principles of Computer Operating Systems

Winter 2009

Instructor
Geoffrey M. Voelker (voelker@cs.ucsd.edu)
CSE 3108
(858) 822-3323

Lectures
Tue/Thu 3:30pm—4:50pm
EBU3b (CSE) 2154

Teaching Assistant
David Wang (dywang@cs.ucsd.edu)

Discussion Sections
Fri 11:00am—11:50am
EBU3B B225

Office Hours
Voelker: Mon 3-4pm, Wed 4-5pm (or by appointment)
Wang: Fri 10-11am (or by appointment)

Textbook
This course does not have a required textbook. However, I would strongly recommend an undergraduate operating systems textbook as a reference. The text we frequently use in CSE 120 is:

Operating Systems Concepts, by Silbershatz, Galvin, and Gagne, 7th Edition, published by Wiley and Sons.
ISBN 0-471-69466-5.

   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 will learn:

  • How to read a research paper in an objective manner.
  • How to write a critical analysis of the research described in a paper.
  • How to articulate your understanding of and insights into a research paper.
  • How to synthesize research themes and topics across multiple papers.
   Reading List
 

The course does not have a textbook. Instead, the course material will come from seminal, noteworthy, or representative papers from the literature. Each lecture (except the first) will have two assigned papers to read. You should read these papers before coming to class, and be prepared to discuss them (written evaluations are not required). Occasionally we will also list recommended papers; you are encouraged to read those, but not required. Students often find it useful to discuss papers together before the class period, and we encourage the practice.

   Class Participation
 

The structure of this course is unusual in that there are no lectures or presentations during the class period. Instead, we will discuss research papers that we will have all read before each class period. I will lead discussions by asking questions of students at random in class. Note that your answers to these questions form an appreciable portion of your overall grade, so it is important that you both show up to class as well as read the papers carefully.

Because of the unusual format of this class, I will not grade you on class participation during the first two weeks of class.

Occasionally, students have to miss class for one good reason or another (e.g., present a paper at a conference, go on a business trip). If you find yourself in this situation, contact me ahead of time to let me know you will be gone. Since you will not be in class to participate in discussion, I also ask that you write a brief evaluation of the papers for the class that you will miss. Your evaluation should address the following questions:

  • What problem does the paper address?
  • How is it different from previous work, if any?
  • What is the approach used to solve the problem?
  • How does the paper support or otherwise justify its arguments and conclusions?
  • Was the paper, in your judgement, successful in addressing the problem?

Your evaluation should be concise, with just one to a few sentences per question. Also, below each paper on the reading list is a question specific to the paper topic. Please conclude your evaluation by answering this question. Email your evaluations to me.

   Homework
  We will have three written homeworks.

   Project
  The course project will measure various aspects of system performance.

   Exams
 

We will have one exam at the end of the quarter. Questions on the exam will be similar to questions on the homework and in the reading list. The exam is closed notes. Two past exams that you can use as study aids are:

   Grading
  The grading breakdown for the course is:
  • Class participation: 30%
  • Homework: 15%
  • Project: 30%
  • Final: 25%
Late assignments will not be accepted without prior approval from the instructor.
   Collaboration
  The course homework assignments must be completed individually, and the project may be completed in teams. The requirements will be explicitly stated for each assignment. For homework assignments, you must write all of the solutions that you submit; for team projects, the code must have been authored exclusively by members of your team. You may (and, in fact, are encouraged to) discuss assignments with others, but you may not copy code from another team or make your code available to others. Of course, code may be freely shared within teams on team assignments. Exams will be individual effort and closed book.

You are expected to be aware of UCSD's academic honesty guidelines. Any violation of the course or university policies will be treated very seriously, and could lead to severe repercussions, up to, and including, expulsion. Don't cheat. It's not worth it.


voelker@cs.ucsd.edu