|
CSE 550: Introduction to Computer Systems Research, Fall 2012
|
|
Overview
Instructor:
Arvind Krishnamurthy
Office hours: Monday 2:30pm-3:30pm, in CSE544, or by appointment.
TA: Raymond Cheng (ryscheng AT cs)
Office hours: by appointment (send email)
Lectures: MW, 10:30am-noon, in EEB 025.
This course will provide the common intellectual foundation for
systems research, suitable as a terminal course for those not
interested in further study in systems, or as a gateway course to the
various specialized systems courses the department offers. The course
will cover the common foundation for research in operating systems,
databases, cluster and wide area distributed systems, networking, and
parallel systems.
The course consists of four major components:
- You will read one or two papers per lecture. For each paper,
you will craft a blog entry contributing an answer to one of the
questions we pose in advance.
- We will hand out three problem sets, which will consist
of a mixture of coding, measurement, or design questions. You can
perform the problem sets in teams of two.
- You will form teams of two or three, and each team will pick a
research project to do for the quarter. There will be intermediate
milestones associated with the project, as well as a final report
and presentation at the end of the quarter.
There is no midterm or final for the course.
Prerequisities: the basic prerequisite is to have taken an
undergraduate operating systems course (CSE
451 or equivalent). If you haven't taken an undergrad OS course, you
might still be able to manage the course but
please come talk to the teaching staff. We will not be covering
undergraduate material in this course.
Papers: you will be responsible for reading one or two
papers before each class, and contributing your thoughts on each
assigned paper to the class discussion board before the class that
covers it.
Mailing list: When you register for the course, you'll
automatically be added to the class mailing list
(cse550a_au12@uw.edu). To manage your subscription, visit
the mailing
list web page. You've been subscribed using your
u.washington.edu email address. But, you can modify your
subscription to use an email address of your choice. Note that you
can only post to the mailing list from your subscribed email address.
Announcements:
- If possible, please read the UNIX timesharing paper before the first class.
Here's the link to the class discussion board:
https://catalyst.uw.edu/gopost/board/arvindk/29781/
and the link to the dropbox for uploading assignments/projects:
https://catalyst.uw.edu/collectit/dropbox/arvindk/24223
and the link to project ideas, which you can access using your UW
google apps account (@uw.edu):
https://sites.google.com/a/uw.edu/cse-550-projects/home
The discussion board has two areas:
- Course discussion. This is a great place for you
to post questions about papers, programming assignments or design
exercises, to look for a project partner, or anything else
class-related.
- Paper discussions. For each lecture other than the
first, we will post a small set of discussion questions based on the
assigned papers. We'll create one thread per discussion question
set. You're required to add a unique comment to the discussion for
each of the threads by 9am on the day of the class. (This is to give
time for everyone to read the blog entries before class.) For each
thread, pick one of the questions in the questionset to answer. Note
that the earlier you post, the easier it is to be unique. Please
keep blog entries short: they can be anything that provides insight
into the question being asked. We will automatically grant two
mulligans during the quarter.
Your blog entries will be graded, but with a very simple 2-bit
scale. If you don't post a blog entry, you get a 0. If you post
something, but if there are significant problems with what you've
posted, e.g., we're not convinced you read and thought about the
paper, you get a 1. If you post something interesting and
thoughtful, you get a 2; we expect most of your postings to get this
grade. Once in a while, if you post something that is surprisingly
insightful or otherwise exceptional, you'll earn a 3; these grades
will be rare.
Here is the schedule of papers that might be tweaked as the quarter
progresses. Note that you're required to read assigned papers, but
the optional additional papers are just that: purely optional, for your
interest, if you choose to go deeper on your own. Discussion board
entries for the assigned papers are due by noon on the day of the
associated lecture.
Date |
Reading |
Notes |
Assignments |
Sept 24 |
Introduction
|
slides
|
Problem set #1
|
Sept 26 |
Concurrency
|
slides
|
|
Oct 3 |
Web services
|
slides
|
|
Oct 5 |
Transactions
|
slides
|
|
Oct 8 |
Concurrency and recovery
|
slides
|
|
Oct 10 |
Distributed Computation
|
slides
|
|
Oct 15/17 |
Consensus
|
slides
|
Problem set #2
|
Oct 22 |
Virtualization
|
slides
|
|
Oct 24 |
Virtualization (contd.)
|
slides
|
|
Oct 29 |
Software virtual memory
|
slides
|
|
Oct 31 |
File Systems
|
slides
|
|
Nov 5 |
Large scale storage systems
|
slides
|
|
Nov 7 |
Consistent Storage
|
slides
|
|
Nov 14 |
DHTs
|
slides
|
|
Nov 19 |
Parallel Computation
|
slides
|
|
Nov 21 |
Networking 1
|
slides
|
|
Nov 26 |
Networking 2
|
slides
|
|
Nov 28 |
Experience paper
|
|
|
Dec 3 |
No class; Arvind out of town.
|
|
|
Dec 4/5 |
Project presentations
|
|
|
Everybody registered for the course should already have had an
instructional UNIX account created for them by the department support
staff, and have been notified of it. Using this account, you can
remotely log into (via ssh) the attu.cs.washington.edu compute
cluster. You can find more information
about instructional resources here.
You should also be able to do the programming assignments on your
own personal machines; none of them require large or exceptionally
powerful machines. You might find it useful to install VMware for
assignments involving Linux development. Both VMware Player and
VMware Server are free, and downloadable from VMware's site.