TDT09 – System and Runtime Software Interaction with Modern Hardware (Autumn/høst 2021)

Common material - relevant for all participants


Learning Activities

This course will be seminar-based. The syllabus will be a selected set of scientific articles. Students are required to read the articles in advance. For each seminar session, one or two students will prepare and present a short presentation as well as prepare a set of questions for the discussions.


The idea behind this year's version of TDT09 is to understand the evolution of the Unix system over the last decades that led to current OS features as well as to investigate future possible features. Each of this features is illustrated by a relevant paper introducing the new idea/feature.

Your task is to understand the ideas behind the respective paper for one of the given topics. I want you to develop an idea of how the implementation of this respective feature into a relatively simple Unix-like system could take place and which changes to the system the implementation of the feature requires.

Your investigation is to be based on the xv6 educational OS from MIT. This OS exists in a number of versions (I have not tested the Raspberry Pi versions myself):

You should be able to run at least the x86 and RISC-V versions of xv6 in the qemu emulator (configurations qemu-system-xv6 and qemu-system-riscv64). A course with details on xv6 (though still the x86 version) can be found in lectures 21-32 of Mythili Vutukuru's OS course at IITB.


  1. A paper (about 10-15 pages) describing the feature and the results of your investigation of a possible implementation in xv6, ideally including a description of your implementation approach
  2. A presentation video (about 15-20 minutes) including a set of slides as a PDF file



If you have an idea for an interesting, research-related topic in operating systems and runtimes you would like to work on, please contact me – I'm happy to hear about your ideas!

You can, of course, also choose from these topics:

  1. New approaches to system calls: Livio Soares and Michael Stumm, FlexSC: Flexible System Call Scheduling with Exception-Less System Calls, Proceedings of OSDI 2010.
  2. Tickless scheduling: Dan Tsafir, Yoav Etsion, Dror Feitelson, General-Purpose Timing: The Failure of Periodic Timers, Technical Report, School of Computer Science and Engineering, The Hebrew University, 2005.
  3. Single address-space OS: Gernot Heiser, Kevin Elphinstone, Jerry Vochteloo, Stephen Russell, and Jochen Liedtke, The Mungi single-address-space operating system, Softw.: Pract. & Exp., 28(9):901-928, Jul 1998.
  4. Capabilities: Fabry, R. S., Capability-based addressing, Communications of the ACM. 17 (7): 403–412.
  5. Redundant multithreading: Björn Döbel, Hermann Härtig, Michael Engel, Operating system support for redundant multithreading, Proceedings of the tenth ACM international conference on Embedded software, 2012.
  6. Memory error handling: Horst Schirmeier, Jens Neuhalfen, Ingo Korb, Olaf Spinczyk, Michael Engel, RAMpage: Graceful degradation management for memory errors in commodity linux servers, 17th Pacific Rim International Symposium on Dependable Computing, 2011.
  7. Lazy Process Switching: Jochen Liedtke, Horst Wenke, Lazy Process Switching, Proceedings of HotOS 8, 2001.
  8. Slim Binaries: Michael Franz, Thomas Kistler, Slim Binaries, Communications of the ACM, 1997, Vol. 40, no. 12.
  9. Log-structured File Systems: John K. Ousterhout, Mendel Rosenblum, The Design and Implementation of a Log-Structured File System, ACM Transactions on Computer Systems, Volume 10 Issue 1, 1992.
  10. Tracing: Bryan M. Cantrill, Michael W. Shapiro and Adam H. Leventhal, Dynamic Instrumentation of Production Systems, Proceedings of USENIX 2004.
  11. Checkpointing and Migration: Yi-Min Wang, Yennun Huang, Kiem-Phong Vo, Pi-Yu Chung and Chandra Kintala, Checkpointing and Its Applications, Proc. IEEE Fault-Tolerant Computing Symp. (FTCS-25), 1995.
  12. Processes as Files: Roger Faulkner, Ron Gomes, The Process File System and Process Model in UNIX System V, Proceedings of USENIX, Winter 1991.
  13. Virtualization: David Golub, Randall Dean, Alessandro Forin, Richard Rashid, Unix as an Application Program, Proceedings of USENIX, Summer 1991.
  14. Kernel Optimization: Calton Pu, Henry Massalin and John Ioannidis, The Synthesis Kernel, Proceedings of USENIX 1998.

Slide and Report Templates