Computer Laboratory

Course pages 2016–17

Advanced Topics in Computer Systems

The slides I gave in the introductory lecture are here.

Schedule & Reading List

We'll meet in for two hours every Tuesday during Lent term (starting on January 24th, 2017). The time-slot is 16.00—18.00, although realistically speaking we'll aim to start at 16.05 and be done by 17.55.

Each week we will generally have 3 presentations from students. Presentations should be about 15—18 minutes long; we'll have 2 presentations (and discussion) to start, then have a short break, and have the final presentation(s) and more discussion.

The paper schedule for this year is given below. The associated presentation schedule, which has been generated at random, is here. Please be sure to check that you know which papers you are presenting, what kind of flavour of presentation you should write, and in which slot (date and time) you are presenting.

Week 1: Introduction: Reflections on Systems Design

Week 2: OS Structures

Week 3: Virtualisation

Week 4: Consensus [ w/ Heidi Howard ]


Week 5: Cluster Scheduling

Week 6: Data Intensive Computing

Week 7: Privacy

Week 8: Bugs


When giving a presentation, you must at least cover:

  1. What is the background and context of the paper? What motivated the authors? What else was going on in the research community at the time? How have things changed since? These last two questions will obviously be more relevant for older papers.
  2. What does the paper actually say? What's the problem they tried to solve? What are the key ideas from the paper? What did the authors actually do? What were the results? Here you are trying to outline the paper in general; don't spend too much time on the results or the evaluation: instead focus on what the authors conclude, and how justified you think they are.
  3. What you think about the paper? What's good and what's bad? What things do you feel should have been discussed more thoroughly? What are the key takeaways? What is the likely impact, or what was the actual impact? Here you are actually giving your judgement on the paper.

In this course we're actually going to have three “flavours” of presentation; Advocate, Balanced, and Critical. These should all follow roughly the same structure described above: all must present the work fairly. However an Advocate would emphasise the good points and perhaps spend less time on the negatives, while the Critic would do the opposite. The Advocate is essentially playing the role of the original author, and is trying to “sell” the work to the audience. A Critic, on the other hand, is trying to convince the audience that the paper is not really as good as painted! Finally, a balanced presentation should emphasise both the good and bad equally.

To get the most out of this part of the course, it's important that you follow the above structure and at least attempt to match the required flavour. Remember not to spend too much time explaining the basics of the paper: everyone will have read it. The key place where you can add value (and hopefully inspire discussion!) is in your opinion of the paper – provided you can back it up!

Some common mistakes in giving presentations:

  • Simply giving a repeat of the paper itself (order, reuse of text or arguments, cut'n'paste of graphs). You can certainly borrow one or two figures from the paper if you think they'll help you explain or argue better, but don't just grab the whole lot.
  • Getting overly nervous or flustered. It is definitely a bit nerve-wracking to stand up in front of people and talk, and some people will find this harder than others. Remember that this is a friendly audience, behind closed doors, and that everyone is going to go through it. Try to treat the presentation as a discussion between you and your peers. And know that doing these presentations in this course will stand to you in your future research career.
  • Getting defensive or angry. Remember, this is not your paper! In fact, you may be arguing a case that you don't believe in. So don't feel like you need to defend the paper against all criticism. And if you don't understand a question (or even part of the paper), just say so: no-one is expected to be an instant expert on such a wide variety of topics after only a few days or weeks.

To give you a feeling for the kinds of presentations expected, there are a few examples. These are for papers not assigned this year, so you may find them a useful resource in any case.

  • "EROS: a fast capability system", Shapiro et al, ACM SOSP 1999.
  • "Labels and Event Processes in the Asbestos Operating System", Efstathopolous et al, ACM SOSP 2005.
  • "Managing Update Conflicts in Bayou, a Weakly Connected Replicated Storage System", Terry et al, ACM SOSP 1995.
  • "Practical Byzantine Fault Tolerance", Castro and Liskov, USENIX OSDI 1999.
  • "Zyzzyva: Speculative Byzantine Fault Tolerance", Kotla et al, ACM SOSP 2007.
  • "DryadLINQ: A System for General-Purpose Distributed Data-Parallel Computing Using a High-Level Language", Yu et al, USENIX OSDI 2008.
  • "Quincy: Fair Scheduling for Distributed Computing Clusters", Isard et al, ACM SOSP 2009.