"Adaptive Quality of Service Architecture"
Hierarchical EDF/FP Real-Time Scheduler for the Linux kernelThe hierarchical EDF/FP real-time scheduling patch to the Linux kernel by Fabio Checconi introduces a hierarchical group level EDF scheduler to extend the current throttling mechanism, in order to make it support generic period assignments. With this patch, the rt_runtime and rt_period parameters can be used to specify arbitrary CPU reservations for groups of RT tasks. Scheduling within each group is performed based on the real-time priorities of the tasks. Therefore, this constitutes a hierarchical hybrid EDF/FP real-time scheduler. This scheduler is particularly suitable for slicing an entire multi-core computing capabilities into equal slices, where each slice is scheduled by an independent partioned EDF-based scheduler on each CPU core, and load-balancing techniques are used in order to migrate automatically tasks from one CPU slice to another one, if needed.
This scheduler has been developed in the context of the IRMOS European FP7 Project.
This scheduler is the most promising for replacing the current AQuoSA kernel-level scheduler. We have already developed an implementation of the AQuoSA qosres user-space API over this scheduler.
SCHED_DEADLINE EDF Scheduler for the Linux kernelThe SCHED_DEADLINE patch to the Linux kernel by Dario Faggioli and Michael Trimarchi provides EDF-based scheduling for real-time tasks on the Linux kernel. This patch provides a new scheduling class and introduces a new sched_setscheduler_ext() system-call that allows to change the scheduling class of an already existing kernel thread into the new SCHED_DEADLINE policy. This scheduler is particularly recommended for scheduling single-threaded real-time applications.
POSIX SCHED_SPORADIC scheduling policy for the Linux kernelAn implementation of the POSIX SCHED_SPORADIC real-time priority-based scheduling has been developed within the Linux kernel by Dario Faggioli. Linux Testbed for Multiprocessor Scheduling in Real-Time Systems (LITMUSRT) project at the University of Nort-Carolina at Chapel Hill is a soft real-time extension of the Linux kernel with focus on multiprocessor real-time scheduling and synchronization. The Linux kernel is modified to support the sporadic task model and modular scheduler plugins. Both partitioned and global scheduling is supported.