  Due to the increasing complexity seen in both workloads and hardware
resources in state-of-the-art embedded systems, developing efficient real-time
schedulers and the corresponding schedulability tests becomes rather
challenging. Although close to optimal schedulability performance can be
achieved for supporting simple system models in practice, adding any small
complexity element into the problem context such as non-preemption or resource
heterogeneity would cause significant pessimism, which may not be eliminated by
any existing scheduling technique. In this paper, we present LINTS^RT, a
learning-based testbed for intelligent real-time scheduling, which has the
potential to handle various complexities seen in practice. The design of
LINTS^RT is fundamentally motivated by AlphaGo Zero for playing the board game
Go, and specifically addresses several critical challenges due to the real-time
scheduling context. We first present a clean design of LINTS^RT for supporting
the basic case: scheduling sporadic workloads on a homogeneous multiprocessor,
and then demonstrate how to easily extend the framework to handle further
complexities such as non-preemption and resource heterogeneity. Both
application and OS-level implementation and evaluation demonstrate that
LINTS^RT is able to achieve significantly higher runtime schedulability under
different settings compared to perhaps the most commonly applied schedulers,
global EDF, and RM. To our knowledge, this work is the first attempt to design
and implement an extensible learning-based testbed for autonomously making
real-time scheduling decisions.
