For real-time systems, the operating system has the goal to orchestrate the execution of jobs such that the overall operation is completed on time. In order to achieve this goal, real-time operating systems should do as little as possible to minimize the influence on the actual computation.
In previous work on the Sloth research project, we examined the possibility to use the interrupt controller, a unit every microcontroller includes, to offload the scheduling work. Every task is assigned to an interrupt source, which has an priority, and the IRQ controller decides, when to execute which thread.
Unluckily, Sloth is only available as partitioned-multicore operating system. The goal of this thesis is to design an implement a variant of Sloth that uses an IRQ controller to do fixed-priority scheduling with thread migration among multiple processors. Since no IRQ controller is fully compatible with this schema, another goal of this thesis is to modify the QEMU system simulator fir the RISC-V architecture to allow the required IRQ dispatching schema.