Explanations of Dynamic Run-Time Resource Allocations

Lead-Supervisor:

How to explain runtime scheduling decisions using design-time data? How to generate explanations based on uncertain non-functional data?

In modern embedded devices, the Operating System (OS) considers non-functional properties such as performance, energy efficiency, timeliness, or code size. This can result in counter-intuitive resource allocation decisions dynamically taken by an OS at runtime, e.g., sacrificing performance for energy savings. We will provide online explanations for such counter-intuitive runtime decisions by exploiting design-time information provided by an optimising compiler.

The early phases of this PhD topic assume counter-intuitive behaviour to manifest in those points in the search space that are indifferent to each other, i.e., which are Pareto-optimal. Exactly here, trade-offs are made that require self-explanation. By making the compiler annotate the generated executables with data about non-functional properties, the OS scheduler can take more elaborate decisions and will be able to explain runtime decisions.

Later, dynamic compiler optimisations will be considered where it becomes difficult to pre-compute a program’s non-functional properties statically at design-time.

Desirable background and expertise: Knowledge in compilers and/or embedded operating systems, and interest in static code analysis and multi-objective optimization. Programming experience in C++, C.