"Adaptive Quality of Service Architecture"
The IRMOS Real-Time Scheduler for Linux
In the context of the IRMOS European Project (Interactive Real-Time Applications on Service-Oriented Infrastructures), a new real-time scheduler for Linux has been developed by the Real-Time Systems Laboratory of Scuola Superiore Sant'Anna, and specifically by Fabio Checconi. This scheduler allows one to reserve a ``slice'' of the processing capability of a system to a group of threads and/or processes (shortly, tasks). It is based on a direct modification of the POSIX real-time scheduling class within the Linux kernel, and has been designed from the scratch with support for multi-processor and multi-core systems. Also, it implements a hierarchical scheduling policy based on both deadlines and priorities. Specifically, POSIX priority-based real-time scheduling is nested inside EDF-based scheduling. The IRMOS real-time scheduler allows for the provisioning of scheduling guarantees to individual task groups. This is done by specifying two scheduling parameters: a budget Q and a period P. The tasks in the group are entitled to run on each of the CPUs (processor, or cores when present) available on the platform, for Q time units every period of P time units. This constitutes a scheduling guarantee and a limitation at the same time.
This is achieved by a hard-reservation variant of the EDF-based Constant Bandwidth Server (CBS) scheduler, implemented as a partitioned scheduling strategy. Each CPU has its own private task queue, and it is scheduled independently of each other, with a few exceptions (details omitted for the sake of brevity, however they can be found in the original paper). However, when a group is entitled to run on each CPU, the IRMOS scheduler employs a POSIX priority-based real-time scheduling strategy among its tasks, in such a way that, if there are M CPUs, (at most) the M tasks with the highest priority are the ones which actually run. The system performs admission control over admitted reserved groups, so that the overall system capacity may be properly partitioned among concurrently running activities in the system, without overloading it. Also, the scheduler has a hierarchical configuration capability, by which it is possible to define groups and nested subgroups of real-time tasks with given scheduling parameters. For a complete description of the features of the IRMOS real-time scheduler for the Linux kernel, the interested reader is reminded to the paper appeared at OSPERT 2009.
The new scheduler is being integrated into the AQuoSA open-source project (Adaptive Quality of Service Architecture), which makes a well-designed user-space API and adaptive reservations available to application developers. It is available for a number of versions of the Linux kernel starting from 2.6.30.
Any comments and feedback on the project by Linux users and developers is more than welcome. Authors can be contacted by using the AQuoSA mailing lists.