SCHED_DEADLINE

SCHED_DEADLINE is a CPU scheduler available in the Linux kernel since version 3.14,[1][2] based on the earliest deadline first (EDF) and constant bandwidth server (CBS)[3] algorithms, supporting resource reservations: each task scheduled under such policy is associated with a budget Q (aka runtime), and a period P, corresponding to a declaration to the kernel that Q time units are required by that task every P time units, on any processor.

In order to avoid this problem, SCHED_DEADLINE adopts the wake-up scheduling rule defined in the CBS algorithm.

In such a case, the configured budget is the total cumulative amount of time the task is allowed to run on any CPU during each period.

The initial idea of a Linux scheduling class based on the Earliest Deadline First (EDF) algorithm was born in the small context of the Real-Time Systems (ReTiS) Lab of Scuola Superiore Sant'Anna[11] and its Spin-Off company Evidence Srl.

[12] Then, Evidence Srl leveraged the funding of the ACTORS project,[13][14] supported by the European Commission through the FP7 framework programme, for financing and promoting the development of the first versions of the patch.

Juri Lelli, Luca Abeni and Claudio Scordino have collaborated to the development of the reclaiming (i.e. GRUB[16]) and frequency-scaling (i.e. GRUB-PA[17]) features.

Each release aligned the code to the latest version of the kernel and took into account comments received at the previous submission.

As the popularity of the scheduler increased, a higher number of kernel developers started providing their feedback and their contribution.

[7][8] Before SCHED_DEADLINE, the Real-Time Systems (ReTiS) Lab[11] of Scuola Superiore Sant'Anna had provided various other open-source implementations of CBS and its variants within the Linux kernel, in the context of other European research projects, including OCERA,[33] the AQuoSA architecture within the FRESCOR project,[34] and IRMOS.

[35] However, these prior efforts started with an academic approach where the main aim was to gather experimental results for research projects, rather than providing an implementation suitable for integration within the mainline kernel.

Since kernel 4.16, SCHED_DEADLINE has been further evolved to reduce energy consumption on ARM platforms by implementing the GRUB-PA algorithm.

[54] Before mainline integration, the code used to be publicly available on a GitHub website,[55] which replaced the previous repository on Gitorious.

Location of the process scheduler in a simplified structure of the Linux kernel.