Library rt.restructuring.model.aggregate.workload
Require Export rt.restructuring.model.priority.classes.
From mathcomp Require Import ssreflect ssrbool eqtype ssrnat seq fintype bigop.
From mathcomp Require Import ssreflect ssrbool eqtype ssrnat seq fintype bigop.
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}.
Consider any job arrival sequence.
First, we define the workload for generic sets of jobs.
Given any predicate over Jobs, ...
... and any (finite) set of jobs.
We define the total workload of the jobs that satisfy predicate P.
Next, we define the workload of tasks with higher or
equal priority under FP policies.
Consider any FP policy that indicates whether a task has
higher or equal priority.
Let tsk be the task to be analyzed.
Recall the notion of a job of higher or equal priority.
Then, we define the workload of all jobs of tasks with
higher-or-equal priority than tsk.
Definition workload_of_higher_or_equal_priority_tasks :=
workload_of_jobs of_higher_or_equal_priority.
End PerTaskPriority.
workload_of_jobs of_higher_or_equal_priority.
End PerTaskPriority.
Then, 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.
Let j be the job to be analyzed.
Recall the notion of a job of higher or equal priority.
Then, we define the workload of higher or equal priority of all jobs
with higher-or-equal priority than j.
Definition workload_of_higher_or_equal_priority_jobs :=
workload_of_jobs of_higher_or_equal_priority.
End PerJobPriority.
workload_of_jobs of_higher_or_equal_priority.
End PerJobPriority.
We also define workload of a task.
Let tsk be the task to be analyzed.
We define the task workload as the workload of jobs of task tsk.
Definition task_workload_between (t1 t2 : instant) :=
task_workload (arrivals_between arr_seq t1 t2).
End TaskWorkload.
End WorkloadOfJobs.
task_workload (arrivals_between arr_seq t1 t2).
End TaskWorkload.
End WorkloadOfJobs.