TDT09 – System and Runtime Software Interaction with Modern Hardware (Autumn 2020)


System and runtime software gain new opportunities for resource-efficient operation due to novel hardware capabilities, such as persistent memories, massive multicore systems, or application-specific accelerators. Nevertheless, these new features also create novel problems, e.g. in security (side-channel timing attacks such as Spectre), energy and power consumption (dark silicon effects), or dependability problems due to the increased transistor number and density. Accordingly, system and runtime software on all levels – hypervisors, operating systems, compilers and just-in-time translators – have to adapt to exploit useful features while mitigating the problematic ones. In this course, we will analyze current related approaches on conceptual as well as implementation level, so the students will gain a deeper understanding of current system software structures and realizations.

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. In each seminar one or two students will prepare a short presentation and questions for the discussions.

Mandatory Activities

Participation in seminars. The date of the first seminar will be announced in the beginning of September.

Proposed Topics

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 the topics described below (missing descriptions will be added soon):

  1. Do we even need an operating system?
  2. Introspection/reflection on language/OS level - get to know your OS better
  3. "Everything is a file, except when not"
  4. Avoiding memory loss - persistent main memories
  5. Protect yourself! Different approaches for security
  6. Software composition - the evil of libraries
  7. Massively parallel, completely different
  8. Monolithic, micro-, exokernels - one size fits all?
  9. Fun with abstractions - but what do they cost us?
  10. New approaches to virtual memory - when a page is too big
  11. C is not for everyone! OS implementation in higher-level languages
  12. I don't care what CPU you use - binary translation
  13. Side channel effects: the cost of Spectre


Slide and Report Templates