Time: 12:30 - 1:45 W/F
Place: 1304 SC
Instructor: Sam King
Email: Sam King
Office: 4306 Siebel Center
Office hours: 11-12 Wed, 11-12 Fri (available via skype and in person)
Phone: (217) 244-0216
TAs: Frank Stratton and Chris Grier (please put CS523 in the subject for a quicker response!)
This class focuses on hot topics in Operating Systems. We will discuss classic papers in the area as well as cutting-edge research. We will discuss classic papers in the area as well as cutting-edge research. We will explore new ideas through projects and improve skills in presentations, critical thinking, systems and security programming, and creativity. The class format will consist of lectures, student presentations, guest lectures, and class project presentations.
The prerequisite for this class is undergraduate operating systems. Some of the topics we will explore are: virtualization, security, reliability and finding bugs, abstractions and interfaces, and storage and file systems.
Reading list Lecture slides
A major part of this course will be reading, analyzing, and discussing papers. We will cover one or two papers per lecture typically. Required readings for each class are posted on the class web site. For each required paper, your assignment is to read the paper carefully before the lecture and to post on the course newsgroup an insight or question about this paper. A good model is the comments and question that take place after someone presents a paper at a research conference. The postings can take many forms, for example, you could post any of the following:
- What you appreciated about the paper
- Where you felt the paper fell short
- Future work that the paper inspired you to think of
- Questions about the meaning of a section of the paper
- Comparisons between the paper and another paper or approach for the same problem
- Relationship between the problem being attacked in this paper and another problem
- How the paper relates to another paper or approach
- Speculation about how the author's idea would apply in a new situation
- Something you wished the author had addressed
- Assumptions in the paper that you disagree with and how you think different assumptions would affect the outcome
- Answering another student's question or following up on another student's comments
Your posting need not be long; the ideal is a few thought-provoking sentences. You should submit your posting to the newsgroup no later than 6pm on the day before we discuss the paper. You need not post anything for the papers being discussed during the first week (January 18 and 23), so your first posting will be about the "Configuration Debugging as Search" paper at 6pm on January 22.
Participating in the class discussions on each paper is an important part of the class. Lively participation by the entire class will help us all understand the material better and have more fun in the process.
You are required to submit thoughtful comments before each class. For classes where we discuss two papers, you must submit comments about at least one of the two papers to get credit. You are allowed two classes where you do not submit comments to the newsgroup before omissions start to affect your grade.
In class we will discuss the papers in two different phases. First, we will break into small groups (3-4 students) to discuss the papers for 10-15 minutes before we break into larger groups. This small group discussion will be guided by a set of questions given to you at the beginning of each class.
To facilitate online students we will leave the microphone with one of the groups so you can listen in on the discussion. However, we are looking into better ways to foster small discussions for online students. Two of the ideas we are thinking about are (1) using laptops and skype so that you can interact with in class students in real time and (2) facilitating online meetings during non-class time for off campus students. Please work with the TAs to help us figure out the best way to foster discussions for online students. This is the first time we are trying this for the OS class so you have the opportunity to influence future online classes.
To schedule meeting times for online students, use this page. Note: online students can get credit for leading a class discussion by leading an online discussion. If you do choose to have an online discussion graded, make sure the session is recorded so I can review the audio later in case I cannot attend it real time. Also, you are required to notify me via email if you do choose to lead an online discussion for a grade.
During the semester you will present one paper to the class. Each LECTURE will have one or two presenters, sign up using the wiki (you can modify the reading list page directly). You can divide up the presentation responsibilities however you see fit and you will be graded individually. Make sure at least one of the discussion leaders can either attend class, or an online student who can lead discussion during class time using skype. You must present the paper(s) in a quals style where you assume everyone has read the paper, so you focus on the most important aspect of the work. You will also be responsible for clearing up any confusing aspects of the paper and for leading a discussion. For discussion topics, use the suggested newsgroup questions as a starting point for thinking about the type of things that would be useful for discussion. Here is a rough guideline for how to lead a discussion:
5 minutes (max) of background material. Explain what this paper is about and why it is important. Remember, we can assume everyone has already read the paper so keep it short!
5 minutes of related work. Discuss some other work that may be related to the papers you are presenting and tie them together to help give a historical context of the work.
30 minutes discussion. Come up with several questions to pose to the class to spark discussions.
The first paper available to students is "Overshadow: A Virtualization-Based Approach to Retrofitting Protection in Commodity Operating Systems" on January 30th.
You will design and carry out a semester-long research project (done in teams). I hope that these projects will lead to published papers. The timeline for the projects is as follows:
- January 30: inform me of your group's membership. Groups should generally consist of two people. Your project partner will have a substantial effect on your experience in this course, so choose carefully.
- February 1: inform me of your project choice. This will be an email with a brief description of what you plan on doing for the semester.
- February 8: project proposals are due. Your proposal should state the problem your project will address, the motivation for why this is an interesting problem, the goal of your project, the relationship between your project and other work, the plan and methodology for your project, and the resources needed to carry out your project. Include a set of incremental milestones that you will achieve in carrying out the project and a schedule for meeting these milestones.
- March 1: Project status meeting #1
- March 28: Midterm report due. You should have some preliminary results at this point and should include an introduction, related work, preliminary design, expected results, and possibly some preliminary results.
- April 5: Project status meeting #2
- April 18, 23, 25, and 30: Project presentations
- May 5: Final report is due
Project ideas are posted on the course website here. Many of the ideas are fairly vague; an important part of a research project is defining the problem. You are welcome to propose a project that is not on the list and I encourage you to tie your research into the course project. Feel free to talk with me, or others, as you formulate your ideas.
For your final report, you must usenix two-column formatting. For an example, feel free to start from the word template (if you must) usenixsample.doc, or the latex template latex-template.tgz. Final submissions must be in PDF format!!! For more information about what I expect from your final reports, see these lecture notes txlinux.pdf lamport-clocks.pdf.
The midterm for this class will cover the reading material. It will be a take-home exam that must be completed individually. The midterm will be handed out on March 13th and due 24 hours after you download the exam. The latest you can turn in your exam is at 11:59pm on March 16th.
Online students do not need a proctor for this exam since it is a take home exam. However, the standard rules for academic integrity still apply.
Update: The midterm is canceled. I reserve the right to give a final in this class in case people stop reading the papers before class, but assuming the discussions continue as they have gone thus far everyone will get full credit for the midterm.
There will be no final exam for this class.
Newsgroup postings and class participation: 20%
Paper presentations/discussion leading: 20%
Project: 40% (proposal 5%, midterm report 5%, presentation 10%, final report and results 20%)
Page: Application Layer and Operating System Collaboration to Improve QoS against DDoS Attack
Page: A Tool for SELinux Administration (Rich, Preston, Gavin)
Page: Lecture slides
Page: Online discussions
Page: Presentation guidelines
Page: Project group 1 - ANA (Apeksha, Nabil, and Anh)
Page: Student contact info