Library prosa.implementation.priority.edf
Require Export prosa.model.priority.edf.
Require Export prosa.model.task.absolute_deadline.
Require Export prosa.analysis.facts.hyperperiod.
Require Export prosa.model.task.absolute_deadline.
Require Export prosa.analysis.facts.hyperperiod.
EDF Priority Policy
#[local] Instance EDF (Job : JobType) `{JobDeadline Job} : JLFP_policy Job :=
{
hep_job (j1 j2 : Job) := job_deadline j1 ≤ job_deadline j2
}.
{
hep_job (j1 j2 : Job) := job_deadline j1 ≤ job_deadline j2
}.
In this section, we prove a few properties about EDF policy.
Consider any type of jobs with deadlines.
Consider any arrival sequence.
EDF is reflexive.
EDF is transitive.
EDF is total.
The concrete EDF implementation is indeed an EDF policy.
EDF's deadline order repeats with a periodic workload.
Consider periodic tasks with relative deadlines ...
... and jobs whose absolute deadlines are derived from their tasks.
Consider a task set with valid periods ...
... generating a valid arrival sequence of jobs of these tasks ...
Variable arr_seq : arrival_sequence Job.
Hypothesis H_valid_arrival_sequence : valid_arrival_sequence arr_seq.
Hypothesis H_all_jobs_from_taskset : all_jobs_from_taskset arr_seq ts.
Hypothesis H_valid_arrival_sequence : valid_arrival_sequence arr_seq.
Hypothesis H_all_jobs_from_taskset : all_jobs_from_taskset arr_seq ts.
... with periodic releases continuing indefinitely.
Hypothesis H_periodic_arrivals : taskset_respects_periodic_task_model arr_seq ts.
Hypothesis H_infinite_jobs : tasks_have_infinite_arrivals arr_seq ts.
Hypothesis H_infinite_jobs : tasks_have_infinite_arrivals arr_seq ts.
Shifting any two given two jobs by one hyperperiod preserves their
deadline order.
Fact EDF_priorities_consistent_across_hyperperiods :
priorities_consistent_across_hyperperiods ts arr_seq (EDF Job).
End EDFHyperperiodPriorities.
priorities_consistent_across_hyperperiods ts arr_seq (EDF Job).
End EDFHyperperiodPriorities.
We add the above lemmas into a "Hint Database" basic_rt_facts, so Rocq
will be able to apply them automatically.
Global Hint Resolve
EDF_is_EDF_policy
EDF_is_reflexive
EDF_is_transitive
EDF_is_total
EDF_priorities_consistent_across_hyperperiods
: basic_rt_facts.
EDF_is_EDF_policy
EDF_is_reflexive
EDF_is_transitive
EDF_is_total
EDF_priorities_consistent_across_hyperperiods
: basic_rt_facts.