Computer Laboratory

Course pages 2011–12

Advanced Topics in Computer Systems

Principal lecturer: Dr Steven Hand
Taken by: MPhil ACS, Part III
Code: R01
Hours: 16 (8 × two-hour seminar sessions)
Prerequisites: Undergraduate operating systems course


This module will attempt to provide an overview of "systems research". This is a very broad field which has existed for over 40 years and which has historically included areas such as operating systems, database systems, file systems, distributed systems and networking, to name but a few. The course will thus necessarily cover only a tiny subset of the field. Many good ideas in systems research are the result of discussing and debating previous work. A primary aim of this course therefore will be to educate students in the art of critical thinking: the ability to argue for and/or against a particular approach or idea. This will be done by having students read and critique a set of papers each week. In addition, each week will include presentations from a number of participants which aim to advocate or criticise each piece of work.


The syllabus for this course will vary from year to year so as to cover a mixture of older and more contemporary systems papers. Contemporary papers will be generally selected from the past 5 years, primarily drawn from high quality conferences such as SOSP, OSDI, ASPLOS, FAST, NSDI and EuroSys.

As an example, the topics for 2010-11 included Systems Research and System Design, OS Structure and Virtual Memory, Systems Virtualization, Bugs, Multicore Operating Systems, Datacenter Storage, Data Intensive Computing and Deterministic Parallelism . See also last year’s full schedule.

The reading each week will generally involve a load equivalent to 2-3 full length papers. Students will be expected to read these in detail and prepare a written summary and critique. In addition, each week will contain one or more short presentations by students for each paper. The types of presentation will include:

  • Overview: a balanced presentation of the paper, covering both positive and negative aspects.
  • Advocacy: a positive spin on the paper, aiming to convince others of its value.
  • Criticism: a negative take on the paper, focusing on its weak spots and omissions.

These presentation roles will be assigned in advance, regardless of the soi disant absolute merit of the paper or the preference of the student. Furthermore, all students – regardless of any assigned presentation role in a given week – will be expected to participate in the class by asking questions and generally entering the debate.


On completion of this module students should have a broad understanding of some key papers and concepts in computer systems research, as well as an appreciation of how to argue for or against any particular idea.

Coursework and practical work

Coursework will be the production of the weekly paper reviews. Practical work will be presenting papers as appropriate, as well as ongoing participation in the class.


Participants on this course will be awarded a percentage score which will be made up of the grades attained for the best ten paper reviews submitted throughout the course.

Recommended reading

Most of the reading for this course will be in the form of the selected papers each week. However, the following may be useful background reading to refresh your knowledge from undergraduate courses:

Silberschatz, A., Peterson, J.L. & Galvin, P.C. (2005). Operating systems concepts. Addison-Wesley (7th ed.).
Tanenbaum, A.S. (2008). Modern Operating Systems. Prentice-Hall (3rd ed.).
Bacon, J. & Harris, T. (2003). Operating systems. Addison-Wesley (3rd ed.).
Leffler, S. (1989). The design and implementation of the 4.3BSD Unix operating system. Addison-Wesley.
Solomon, D. & Russinovich, M. (2000). Inside Windows 2000. Microsoft Press (3rd ed.) or Windows internals (2005, 4th ed.).
Hennessy, J. & Patterson, D. (2006). Computer architecture: a quantitative approach. Elsevier (4th ed.). ISBN 978-0-12-370490-0.