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, 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.
 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
Download paper as pdf file