Library prosa.model.task.arrival.periodic_as_sporadic
Treating Periodic Tasks as Sporadic Tasks
Any type of periodic tasks ...
... and their corresponding jobs from a consistent arrival sequence with
non-duplicate arrivals ...
Context {Job : JobType} `{JobTask Job Task} `{JobArrival Job}.
Variable arr_seq : arrival_sequence Job.
Hypothesis H_consistent_arrivals: consistent_arrival_times arr_seq.
Hypothesis H_uniq_arr_seq: arrival_sequence_uniq arr_seq.
Variable arr_seq : arrival_sequence Job.
Hypothesis H_consistent_arrivals: consistent_arrival_times arr_seq.
Hypothesis H_uniq_arr_seq: arrival_sequence_uniq arr_seq.
... may be interpreted as a type of sporadic tasks by using each task's
period as its minimum inter-arrival time ...
Global Instance periodic_as_sporadic : SporadicModel Task :=
{
task_min_inter_arrival_time := task_period
}.
{
task_min_inter_arrival_time := task_period
}.
... such that the model interpretation is valid, both w.r.t. the minimum
inter-arrival time parameter ...
Remark valid_period_is_valid_inter_arrival_time:
∀ tsk, valid_period tsk → valid_task_min_inter_arrival_time tsk.
∀ tsk, valid_period tsk → valid_task_min_inter_arrival_time tsk.
... and the separation of job arrivals.
Remark periodic_task_respects_sporadic_task_model:
∀ tsk, valid_period tsk →
respects_periodic_task_model arr_seq tsk →
respects_sporadic_task_model arr_seq tsk.
∀ tsk, valid_period tsk →
respects_periodic_task_model arr_seq tsk →
respects_sporadic_task_model arr_seq tsk.
For convenience, we state these obvious correspondences also at the level
of entire task sets.
First, we show that all tasks in a task set with valid periods
also have valid min inter-arrival times.
Remark valid_periods_are_valid_inter_arrival_times :
∀ ts, valid_periods ts → valid_taskset_inter_arrival_times ts.
∀ ts, valid_periods ts → valid_taskset_inter_arrival_times ts.
Second, we show that each task in a periodic task set respects
the sporadic task model.
Remark periodic_task_sets_respect_sporadic_task_model :
∀ ts,
valid_periods ts →
taskset_respects_periodic_task_model arr_seq ts →
taskset_respects_sporadic_task_model ts arr_seq.
End PeriodicTasksAsSporadicTasks.
∀ ts,
valid_periods ts →
taskset_respects_periodic_task_model arr_seq ts →
taskset_respects_sporadic_task_model ts arr_seq.
End PeriodicTasksAsSporadicTasks.
We add the lemmas into the "Hint Database" basic_rt_facts so that
they become available for proof automation.
Global Hint Resolve
periodic_task_respects_sporadic_task_model
valid_period_is_valid_inter_arrival_time
valid_periods_are_valid_inter_arrival_times
periodic_task_sets_respect_sporadic_task_model
: basic_rt_facts.
periodic_task_respects_sporadic_task_model
valid_period_is_valid_inter_arrival_time
valid_periods_are_valid_inter_arrival_times
periodic_task_sets_respect_sporadic_task_model
: basic_rt_facts.