Library rt.restructuring.model.task
Throughout the library we assume that tasks have decidable equality
Definition of a generic type of parameter relating jobs to tasks
Definition of a generic type of parameter for task deadlines
Definition of a generic type of parameter for task cost
Definition of a generic type of parameter relating tasks
to the length of the maximum nonpreeptive segment.
Class TaskMaxNonpreemptiveSegment (Task : TaskType) :=
task_max_nonpreeptive_segment : Task → duration.
task_max_nonpreeptive_segment : Task → duration.
Definition of a generic type of parameter relating tasks
to theirs run-to-completion threshold.
Class TaskRunToCompletionThreshold (Task : TaskType) :=
task_run_to_completion_threshold : Task → duration.
Section SameTask.
task_run_to_completion_threshold : Task → duration.
Section SameTask.
For any type of job associated with any type of tasks...
... we say that two jobs j1 and j2 are from the same task iff job_task j1 is equal to job_task j2, ...
... we also say that job j is a job of task tsk iff job_task j is equal to tsk.
Given task deadlines and a mapping from jobs to tasks we provide a generic definition of job_deadline
Instance job_deadline_from_task_deadline
(Job : JobType) (Task : TaskType)
`{TaskDeadline Task} `{JobArrival Job} `{JobTask Job Task} : JobDeadline Job :=
fun j ⇒ job_arrival j + task_deadline (job_task j).
(Job : JobType) (Task : TaskType)
`{TaskDeadline Task} `{JobArrival Job} `{JobTask Job Task} : JobDeadline Job :=
fun j ⇒ job_arrival j + task_deadline (job_task j).
In this section, we introduce properties of a task.
Consider any type of tasks.
Next we intrdoduce attributes of a valid sporadic task.
Consider an arbitrary task.
The cost and deadline of the task must be positive.
Definition task_cost_positive := task_cost tsk > 0.
Definition task_deadline_positive := task_deadline tsk > 0.
Definition task_deadline_positive := task_deadline tsk > 0.
The task cost cannot be larger than the deadline or the period.
Job of task
Consider any type of jobs associated with the tasks ...
Context {Job : JobType}.
Context `{JobTask Job Task}.
Context `{JobCost Job}.
Context `{JobDeadline Job}.
Context `{JobTask Job Task}.
Context `{JobCost Job}.
Context `{JobDeadline Job}.
Consider an arbitrary job.
The job cost cannot be larger than the task cost.
Jobs of task
Consider any type of jobs associated with the tasks ...
... and any arrival sequence.
The cost of a job from the arrival sequence cannot
be larger than the task cost.
Definition cost_of_jobs_from_arrival_sequence_le_task_cost :=
∀ j,
arrives_in arr_seq j →
job_cost_le_task_cost j.
End ValidJobsTask.
End PropertesOfTask.
∀ j,
arrives_in arr_seq j →
job_cost_le_task_cost j.
End ValidJobsTask.
End PropertesOfTask.
In this section, we introduce properties of a task set.
Consider any type of tasks ...
... and any type of jobs associated with these tasks ...
... and any arrival sequence.
Consider an arbitrary task set.
Tasks from the task set have a positive cost.
All jobs in the arrival sequence come from the taskset.
Definition all_jobs_from_taskset :=
∀ j,
arrives_in arr_seq j →
job_task j \in ts.
End PropertesOfTaskSet.
∀ j,
arrives_in arr_seq j →
job_task j \in ts.
End PropertesOfTaskSet.