Library prosa.model.task.arrival.periodic
Require Export prosa.model.task.arrival.sporadic.
Require Export prosa.model.task.arrival.task_max_inter_arrival.
Require Export prosa.model.task.offset.
Require Export prosa.analysis.facts.job_index.
Require Export prosa.model.task.arrival.task_max_inter_arrival.
Require Export prosa.model.task.offset.
Require Export prosa.analysis.facts.job_index.
The Periodic Task Model
Task Model Parameter for Periods
Consider any type of periodic tasks.
A valid periodic task has a non-zero period.
Next, consider any type of jobs stemming from these tasks ...
... and an arbitrary arrival sequence of such jobs.
We say that a task respects the periodic task model if every job j
(except the first one) has a predecessor j' that arrives exactly one
task period before it.
Definition respects_periodic_task_model (tsk : Task) :=
∀ j,
arrives_in arr_seq j →
job_index arr_seq j > 0 →
job_task j = tsk →
∃ j',
arrives_in arr_seq j' ∧
job_index arr_seq j' = job_index arr_seq j - 1 ∧
job_task j' = tsk ∧
job_arrival j = job_arrival j' + task_period tsk.
∀ j,
arrives_in arr_seq j →
job_index arr_seq j > 0 →
job_task j = tsk →
∃ j',
arrives_in arr_seq j' ∧
job_index arr_seq j' = job_index arr_seq j - 1 ∧
job_task j' = tsk ∧
job_arrival j = job_arrival j' + task_period tsk.
Further, in the context of a set of periodic tasks, ...
... every task in the set must have a valid period ...
... and all jobs of every task in a set of periodic tasks must
respect the period constraint on arrival times.
Definition taskset_respects_periodic_task_model :=
∀ tsk, tsk \in ts → respects_periodic_task_model tsk.
End ValidPeriodicTaskModel.
∀ tsk, tsk \in ts → respects_periodic_task_model tsk.
End ValidPeriodicTaskModel.