SCHED_DEADLINE: a real-time CPU scheduler for Linux

SCHED_DEADLINE is a scheduling policy for the Linux kernel, implementing a scheduler based on Earliest Deadline First and the Constant Bandwidth Server. It supports multiple CPUs and uses global EDF by default, but allows to use partitioned EDF with a little bit of configuration trickeries.

The SCHED_DEADLINE policy is included in the vanilla Linux kernel, hence it is available without installing any additional software: any recent Linux distribution (Ubuntu is recommended) is ok for the tutorial. Since in the tutorial the real-time performance of the scheduler will be exercized, running SCHED_DEADLINE in a VM is not recommended (it would require some additional care to execute the host kernel in real-time).

A few other pointers are given in the following installation instructions.

Installation Instructions
For the experiments that will be performed during the tutorial, the “rt-app” application will be used. The participants are encouraged to install it in advance: just clone the sources from github and compile it as shown in the README. Remember to configure with the “–with-deadline” switch (note that you need to install autoconf, automake, libtool and libjson-c on your system).

Some simple source code will also be used to show how to programmatically use SCHED_DEADLINE in your programs. Finally, in the tutorial it will be shown how to use SCHED_DEADLINE to schedule the vcpu threads of a KVM-based virtual machine to implement hierarchical real-time scheduling (SCHED_DEADLINE will be used on the host, and some real-time tasks will be executed in the guest). Hence, the attenders are encouraged to install Qemu/KVM (it is packaged by all the major Linux distributions) in their laptop and to download the guest kernel and filesystem that will be used.

Comments are closed.