Thread Scheduling in Embedded Runtime Systems
Master of Science
This study explores the design space of thread scheduler on the resource-constrained embedded run-time system. The current state-of-art priority-based scheduler heavily relies on developers deliberate tuning of the programs to achieve good performance or even correct behavior. A simple mistake in setting the scheduler parameters can lead to processor resource starvation and high message latency. This thesis first provides the embedded system specific implementation and evaluation of various scheduling techniques widely-used in other systems. It then proposes a new approach to optimize processor share and mes-sage latency that is based on borrowed-virtual-time scheduling and message priority. In particular, threads inherit the priorities of the received messages and the scheduler always selects the thread with the least virtual time (actual execution time weighted by priority). Results show that this approach provides weighted fair share of the processor without any starvation and low message latency.