Library prosa.model.aggregate.workload
Cumulative Workload of Sets of Jobs
Consider any type of tasks ...
... and any type of jobs with execution costs that are
associated with these tasks.
We define the workload of jobs that satisfy a predicate.
We define the task workload as the workload of jobs of task tsk.
Now consider an arbitrary job arrival sequence.
Definition task_workload_between (tsk : Task) (t1 t2 : instant) :=
task_workload tsk (arrivals_between arr_seq t1 t2).
task_workload tsk (arrivals_between arr_seq t1 t2).
Further, we define (trivially) the workload of a given job. While this
definition may appear of little use, it is in fact useful for certain
rewriting steps.
Definition workload_of_job (j : Job) (t1 t2 : instant) :=
workload_of_jobs (xpred1 j) (arrivals_between arr_seq t1 t2).
workload_of_jobs (xpred1 j) (arrivals_between arr_seq t1 t2).
In this section, we add definitions for total workload.
We define the total workload as the sum of workloads of all incoming jobs.
Definition total_workload_between (t1 t2 : instant) :=
total_workload (arrivals_between arr_seq t1 t2).
End TotalWorkload.
total_workload (arrivals_between arr_seq t1 t2).
End TotalWorkload.
Next, we define the workload of jobs with higher or
equal priority under JLFP policies.
Consider any JLFP policy that indicates whether a job has
higher or equal priority.
We extend the prior notion to define the workload all jobs
with higher-or-equal priority than j in a given interval.
Definition workload_of_hep_jobs (j : Job) (t1 t2 : instant) :=
let is_hep j' := hep_job j' j in
workload_of_jobs is_hep (arrivals_between arr_seq t1 t2).
let is_hep j' := hep_job j' j in
workload_of_jobs is_hep (arrivals_between arr_seq t1 t2).
We define a similar non-reflexive notion of higher-or-equal
priority workload in an interval.
Definition workload_of_other_hep_jobs (j : Job) (t1 t2 : instant) :=
let is_ahep j' := another_hep_job j' j in
workload_of_jobs is_ahep (arrivals_between arr_seq t1 t2).
End PerJobPriority.
End WorkloadOfJobs.
let is_ahep j' := another_hep_job j' j in
workload_of_jobs is_ahep (arrivals_between arr_seq t1 t2).
End PerJobPriority.
End WorkloadOfJobs.