CSE 221: Operating Systems: The Isolation of Smaug

Winter 2014

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

Lectures
Tu/Th 8:00–9:20am
WLH 2111

Teaching Assistant
Peng (Ryan) Huang
peh003@eng.ucsd.edu

Office Hours
Voelker: Mon 3–4pm (or by appointment)
Huang: Thu 4–5pm in CSE B250A (basement)

Textbook
This course does not have a required textbook. However, I would strongly recommend an undergraduate operating systems textbook as a reference — any reasonably recent OS textbook will suffice, such as:

Operating Systems Concepts, by Silbershatz, Galvin, and Gagne, 8th Edition, published by Wiley and Sons.
ISBN 978-0-470-12872-5.

Forums
The course mailing list and Piazza

Prerequisites
CSE 120 or equivalent.

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 (see more on collaboration below).

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 a part 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 a few written homeworks. The homeworks serve as good practice for thinking about papers and answering questions found on the final. Please turn in hardcopy of your homework at the start of class.

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: 15%
  • Homework: 20%
  • Project: 30%
  • Final: 35%
Late assignments will not be accepted without prior approval from the instructor.

Collaboration
 

Papers. I strongly encourage you to discuss the papers with other students in the class — you may have insights that others do not, and vice versa. Often students form reading groups. Note that group discussion, however, is not an effective substitute for actually reading the paper.

Homework. You can also discuss the homework problems, but you must independently complete the assignments yourself. As a rule of thumb, you can discuss a homework problem in the lounge with others, walk home, wash the dishes, and then write up your answer to the problem on your own. You cannot, however, discuss homework problems with others and then write your answers to those problems at the same time.

Project. You can complete the course project as a team. You can discuss project materials with others in the course, but your code must have been authored exclusively by members of your team; you may not copy code from another team or make your code available to others.

Exam. The exam is an 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. Don't cheat. It's not worth it.


voelker@cs.ucsd.edu