ABSTRACT:
Traditional real-time theory provides scheduling algorithms and
admission tests for serving real-time applications that are mainly
CPU-bound. However, serving real-time applications that simultaneously
use multiple hardware resources (such as CPU, disk, network, ...) is
still an open issue: for example, device drivers can have a large
impact on real-time applications, "stealing" some execution time to
them. A solution to this problem that has been proposed in some
real-time systems (and in many microkernel-based systems) is based on
scheduling the Interrupt Service Routines (ISRs) by executing them in
IRQ threads. This solution is also implemented in the Realtime Preempt
Linux kernel (by Ingo Molnar and others) and allows to schedule
interrupt handlers so that their interference on real-time activities
can be controlled. However, scheduling policies for the IRQ threads
have not been fully analysed and studied yet (for example, a theory
for assigning priorities to IRQ threads is still missing). In a
previous work-in-progress paper[1], we presented some preliminary
results obtained when experimenting with the priorities of IRQ threads
in a Realtime Preempt kernel, and we showed that fixed priority
scheduling does not provide enough flexibility for finding a trade-off
between real-time performance and throughput. In this paper, we extend
such work by showing how reservation-based scheduling (and in
particular, the usage of the Constant Bandwidth Server - CBS) allows
to find such trade-offs. The paper presents the results obtained by
using an implementation of the CBS to schedule interrupt threads in a
Realtime Preempt Linux kernel.
[1] Modena G., Abeni L., Palopoli L., "Providing QoS by Scheduling Interrupt Threads". 14th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS 2008) Work in Progress