Deadline-monotonic scheduling
# Deadline-monotonic scheduling

Deadline-monotonic priority assignment is a priority assignment policy used with fixed-priority pre-emptive scheduling.

With deadline-monotonic priority assignment, tasks are assigned priorities according to their deadlines. The task with the shortest deadline is assigned the highest priority. This priority assignment policy is optimal for a set of periodic or sporadic tasks which comply with the following system model:

* All tasks have deadlines less than or equal to their minimum inter-arrival times (or periods).
* All tasks have worst-case execution times (WCET) that are less than or equal to their deadlines.
* All tasks are independent, and so do not block each other's execution (e.g., by accessing mutually exclusive shared resources).
* No task voluntarily suspends itself.
* There is some point in time, referred to as a critical instant, where all of the tasks become ready to execute simultaneously.
* Scheduling overheads (switching from one task to another) are zero.
* All tasks have zero release jitter (the time from the task arriving to it becoming ready to execute).

If restriction 7 is lifted, then "deadline minus jitter" monotonic priority assignment is optimal.

If restriction 1 is lifted, allowing deadlines greater than periods, then Audsley's optimal priority assignment algorithm may be used to find the optimal priority assignment.

Deadline monotonic priority assignment is not optimal for fixed priority non-pre-emptive scheduling.

A fixed priority assignment policy P is referred to as optimal if no task set exists which is schedulable using a different priority assignment policy which is not also schedulable using priority assignment policy P. Or in other words: Deadline-monotonic priority assignment (DMPA) policy is optimal if any process set, Q, that is schedulable by priority scheme W, is also schedulable by DMPA

