Skip to content
About
Main content

Deadline-aware scheduling

When can every deadline be met, and why does EDF collapse just past full utilization?

Earliest-deadline-first (EDF) always runs the task whose deadline is nearest. It is optimal in a strong sense: on a single preemptive resource, if any ordering meets all deadlines, does.

Feasibility is even decidable by arithmetic. For periodic work (task i needs Cᵢ time units every Tᵢ time units), the set of tasks is schedulable if and only if

time units task i needs each period
the period of task i

This is unusual and worth noticing: it is one of the few places in the whole stack where you can prove in advance that a commitment is keepable.

The catch is what happens at Σ > 1. EDF degrades by domino. It keeps chasing the nearest deadline, misses it, moves to the next one (already late), and misses that too, and so on. A policy that is optimal when feasible becomes worst-in-class when infeasible. So deadline scheduling is unusable without an admission gate in front of it: you must refuse work that would push the sum past 1. That is the thesis of this whole mechanism in miniature, and the reason admission control exists.

Boundary. Real-time theory assumes a known worst-case execution time. Pipeline are estimates, estimates are systematically optimistic, and the schedulability test inherits that bias. An SLA-aware orchestrator is doing EDF over numbers it made up.

Deadlines need as a matched pair.