Operating System Scheduler Design for Multicore Architectures
A fundamental change to the requirements of operating system architecture is taking place as hardware designers move from speeding up individual processors to including ever more processing cores on a processor die. Multicore platforms have led to an increased pace in hardware architecture evolution that operating system engineers struggle to keep up with. Substantial effort is being put into today’s commodity operating systems to make them scale with the increasing number of cores and adapt to new cache and memory hierarchies. At the same time, programs start to employ parallelism to leverage the offered potential for speedup. Commodity operating systems increasingly need to handle a dynamic and interactive mix of parallel applications sharing a multicore machine.
In my thesis I have been working with others to design and build the Barrelfish operating system. Barrelfish is designed from scratch for multicore architectures. Using the processor scheduling subsystem as an example, I will discuss the general problems that arise in building an OS resource management component, such that it is both scalable with an increasing number of cores, as well as agile with the changing hardware architecture. Finally, I will discuss abstractions to support scheduling of a dynamic mix of parallel applications in an interactive setting and show in two example scenarios how these abstractions can significantly improve the performance of a mix of parallel applications sharing the machine.
Simon is a Ph.D. student in the Systems Group at ETH Zurich, where he is expected to graduate in May 2012. His advisor is Timothy Roscoe. Simon is working on the Barrelfish multicore operating system, focusing on resource management. Prior to his Ph.D. he graduated with an MSc in Computer Science at the Carl-von-Ossietzky University of Oldenburg, Germany in 2006, focusing on replication in distributed filesystems.
Just before starting his Ph.D. studies, Simon spent 10 months in the USA, both on the east (Computer and Network Systems, National Science Foundation, Arlington, VA) and the west coast (Distributed Systems Laboratory, University of California, Riverside) as a visiting researcher, working on filesystem trace studies.
In 2008 and 2009, he accomplished two internships, both of them at Microsoft Research. The first in Cambridge, UK, the second in Mountain View, CA. At MSR, he has worked on resource and topology aware scheduling of DryadLINQ jobs on heterogeneous clusters and the Fay dynamic cluster tracing system.
- Simon Peter
- Systems Group at ETH Zurich