Library prosa.implementation.refinements.FP.preemptive_sched
Require Export prosa.analysis.facts.preemption.task.preemptive.
Require Export prosa.analysis.facts.preemption.rtc_threshold.preemptive.
Require Export prosa.analysis.facts.readiness.sequential.
Require Export prosa.analysis.definitions.tardiness.
Require Export prosa.implementation.facts.ideal_uni.prio_aware.
Require Export prosa.implementation.definitions.task.
Require Export prosa.analysis.facts.preemption.rtc_threshold.preemptive.
Require Export prosa.analysis.facts.readiness.sequential.
Require Export prosa.analysis.definitions.tardiness.
Require Export prosa.implementation.facts.ideal_uni.prio_aware.
Require Export prosa.implementation.definitions.task.
Fully-Preemptive Fixed-Priority Schedules
In this file, we adopt the Prosa standard implementation of jobs and tasks.
Consider any valid arrival sequence, ...
Variable arr_seq : arrival_sequence Job.
Hypothesis H_valid_arrivals : valid_arrival_sequence arr_seq.
Hypothesis H_valid_arrivals : valid_arrival_sequence arr_seq.
... assume sequential readiness, ...
Instance sequential_ready_instance : JobReady Job (ideal.processor_state Job) :=
sequential_ready_instance arr_seq.
sequential_ready_instance arr_seq.
... and consider any fully-preemptive, fixed-priority schedule.
#[local] Existing Instance fully_preemptive_job_model.
#[local] Existing Instance NumericFPAscending.
Definition sched := uni_schedule arr_seq.
#[local] Existing Instance NumericFPAscending.
Definition sched := uni_schedule arr_seq.
First, we remark that such a schedule is valid.
Finally, we show that the fixed-priority policy is respected at each preemption point.