Library prosa.analysis.abstract.restricted_supply.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.abstract.definitions.
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.abstract.definitions.
Service Inversion Bounded
In this section, we define the notion of bounded cumulative service inversion in an abstract 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 we are provided with abstract functions for interference
      and interfering workload. 
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 (abstract) 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 sched) j B.
pred_service_inversion_of_job_is_bounded_by
arr_seq sched (busy_interval_prefix 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 an abstract busy interval
      prefix. 
  Definition service_inversion_is_bounded_by (tsk : Task) (B : duration → duration) :=
pred_service_inversion_is_bounded_by
arr_seq sched (busy_interval_prefix sched) tsk B.
End ServiceInversion.
pred_service_inversion_is_bounded_by
arr_seq sched (busy_interval_prefix sched) tsk B.
End ServiceInversion.