CSE 221: Graduate Operating Systems

Winter 2021

Instructor
Geoffrey M. Voelker
voelker@cs.ucsd.edu
CSE 3108

Lectures
Tu/Th 8:00–9:20am (online)

Teaching Assistants
Mingyao Shen

Office Hours
Voelker: Mon 3–4pm (or by appointment)
Shen: Fri 3–4pm

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

Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
Operating Systems: Three Easy Pieces
Version 1.00   (Available free online! Free easy pieces!)
Anderson and Dahlin, Operating Systems: Principles and Practice, 2nd Edition (2014)
Recursive Books, ISBN 978-0985673529

Forums
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:

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.

To give you some structure for reading through the papers, keep the following questions in mind and ask yourself how you would answer these questions about each paper:

Homework

We will have a few written homeworks:

Project

The course project will measure various aspects of system performance.

Exam

We will have one exam at the end of the quarter. Because the course is remote this year, the exam will be a take-home exam.

MS students: Note that the CSE 221 final exam satisfies the MS competency exam. After the course, you do not have take a separate comps exam.

Grading

The grading breakdown for the course is:

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, which I heartily encourage. 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.