Library prosa.analysis.definitions.service_inversion.busy_prefix
Require Export prosa.model.priority.classes.
Require Export prosa.analysis.facts.behavior.completion.
Require Export prosa.analysis.definitions.service.
Require Export prosa.analysis.definitions.service_inversion.pred.
Require Export prosa.analysis.definitions.busy_interval.classical.
Require Export prosa.analysis.facts.behavior.completion.
Require Export prosa.analysis.definitions.service.
Require Export prosa.analysis.definitions.service_inversion.pred.
Require Export prosa.analysis.definitions.busy_interval.classical.
Service Inversion Bounded
In this section, we define the notion of bounded cumulative service inversion in a busy interval prefix.
Consider any type of tasks ...
... and any type of jobs associated with these tasks.
Context {Job : JobType}.
Context `{JobTask Job Task}.
Context `{JobArrival Job}.
Context `{JobCost Job}.
Context `{JobTask Job Task}.
Context `{JobArrival Job}.
Context `{JobCost Job}.
Next, consider any kind of processor state model, ...
... any arrival sequence, ...
... and any schedule of this arrival sequence.
Assume a given JLFP policy.
If the priority inversion experienced by job j depends on its
relative arrival time w.r.t. the beginning of its busy interval
at a time t1, we say that the service inversion of job j is
bounded by a function B : duration → duration if the
cumulative service inversion within any busy interval prefix is
bounded by B (job_arrival j - t1).
Definition service_inversion_of_job_is_bounded_by (j : Job) (B : duration → duration) :=
pred_service_inversion_of_job_is_bounded_by
arr_seq sched (busy_interval_prefix arr_seq sched) j B.
pred_service_inversion_of_job_is_bounded_by
arr_seq sched (busy_interval_prefix arr_seq sched) j B.
We say that task tsk has bounded service inversion if all its
jobs have cumulative service inversion bounded by function B :
duration → duration, where B may depend on jobs' relative
arrival times w.r.t. the beginning of the busy interval.
Definition service_inversion_is_bounded_by (tsk : Task) (B : duration → duration) :=
pred_service_inversion_is_bounded_by
arr_seq sched (busy_interval_prefix arr_seq sched) tsk B.
End ServiceInversion.
pred_service_inversion_is_bounded_by
arr_seq sched (busy_interval_prefix arr_seq sched) tsk B.
End ServiceInversion.