Skip to content
Snippets Groups Projects
Commit 96f719e7 authored by Felipe Cerqueira's avatar Felipe Cerqueira
Browse files

Cleanup job and task files

parent ddfde3cf
No related branches found
No related tags found
No related merge requests found
Require Import task util_lemmas ssrnat ssrbool eqtype. Require Import task util_lemmas ssrnat ssrbool eqtype.
(* Properties of different types of job: *)
Module Job. Module Job.
(*We define valid parameters for different types of jobs ...*) (* 1) Basic Job *)
(*...for a job*)
Section ValidJob. Section ValidJob.
Context {Job: eqType}. Context {Job: eqType}.
...@@ -11,11 +11,12 @@ Module Job. ...@@ -11,11 +11,12 @@ Module Job.
Variable j: Job. Variable j: Job.
(* The job cost must be positive. *)
Definition job_cost_positive (j: Job) := job_cost j > 0. Definition job_cost_positive (j: Job) := job_cost j > 0.
End ValidJob. End ValidJob.
(*... for a real time job (with a deadline) ...*) (* 2) real-time job (with a deadline) *)
Section ValidRealtimeJob. Section ValidRealtimeJob.
Context {Job: eqType}. Context {Job: eqType}.
...@@ -24,8 +25,9 @@ Module Job. ...@@ -24,8 +25,9 @@ Module Job.
Variable j: Job. Variable j: Job.
Definition job_cost_le_deadline := job_cost j <= job_deadline j. (* The job deadline must be positive and no less than its cost. *)
Definition job_deadline_positive := job_deadline j > 0. Definition job_deadline_positive := job_deadline j > 0.
Definition job_cost_le_deadline := job_cost j <= job_deadline j.
Definition valid_realtime_job := Definition valid_realtime_job :=
job_cost_positive job_cost j /\ job_cost_positive job_cost j /\
...@@ -34,7 +36,7 @@ Module Job. ...@@ -34,7 +36,7 @@ Module Job.
End ValidRealtimeJob. End ValidRealtimeJob.
(* ... for a job of a sporadic task ...*) (* 3) Job of sporadic task *)
Section ValidSporadicTaskJob. Section ValidSporadicTaskJob.
Context {sporadic_task: eqType}. Context {sporadic_task: eqType}.
...@@ -48,8 +50,11 @@ Module Job. ...@@ -48,8 +50,11 @@ Module Job.
Variable j: Job. Variable j: Job.
(* The job cost cannot be larger than the task cost. *)
Definition job_cost_le_task_cost := Definition job_cost_le_task_cost :=
job_cost j <= task_cost (job_task j). job_cost j <= task_cost (job_task j).
(* The job deadline must be equal to the task deadline. *)
Definition job_deadline_eq_task_deadline := Definition job_deadline_eq_task_deadline :=
job_deadline j = task_deadline (job_task j). job_deadline j = task_deadline (job_task j).
...@@ -60,7 +65,7 @@ Module Job. ...@@ -60,7 +65,7 @@ Module Job.
End ValidSporadicTaskJob. End ValidSporadicTaskJob.
(*... for a job of a sporadic task with jitter ...*) (* 4) Job of sporadic task with jitter *)
Section ValidSporadicTaskJobWithJitter. Section ValidSporadicTaskJobWithJitter.
Context {sporadic_task: eqType}. Context {sporadic_task: eqType}.
...@@ -76,6 +81,7 @@ Module Job. ...@@ -76,6 +81,7 @@ Module Job.
Variable j: Job. Variable j: Job.
(* The job jitter cannot be larger than the task (maximum) jitter.*)
Definition job_jitter_leq_task_jitter := Definition job_jitter_leq_task_jitter :=
job_jitter j <= task_jitter (job_task j). job_jitter j <= task_jitter (job_task j).
......
Require Import Vbase util_lemmas ssrnat ssrbool eqtype fintype seq. Require Import Vbase util_lemmas ssrnat ssrbool eqtype fintype seq.
(* Attributes of a valid sporadic task. *)
Module SporadicTask. Module SporadicTask.
(* Next we define valid parameters for a sporadic task*)
Section BasicTask. Section BasicTask.
Context {Task: eqType}. Context {Task: eqType}.
Variable task_cost: Task -> nat. Variable task_cost: Task -> nat.
...@@ -10,10 +11,13 @@ Module SporadicTask. ...@@ -10,10 +11,13 @@ Module SporadicTask.
Section ValidParameters. Section ValidParameters.
Variable tsk: Task. Variable tsk: Task.
(* The cost, period and deadline of the task must be positive. *)
Definition task_cost_positive := task_cost tsk > 0. Definition task_cost_positive := task_cost tsk > 0.
Definition task_period_positive := task_period tsk > 0. Definition task_period_positive := task_period 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. *)
Definition task_cost_le_deadline := task_cost tsk <= task_deadline tsk. Definition task_cost_le_deadline := task_cost tsk <= task_deadline tsk.
Definition task_cost_le_period := task_cost tsk <= task_period tsk. Definition task_cost_le_period := task_cost tsk <= task_period tsk.
...@@ -27,14 +31,16 @@ Module SporadicTask. ...@@ -27,14 +31,16 @@ Module SporadicTask.
End SporadicTask. End SporadicTask.
(* Definition and properties of a task set. *)
Module SporadicTaskset. Module SporadicTaskset.
Export SporadicTask. Export SporadicTask.
(* In this section we define a task set as a sequence of tasks. *)
Section TasksetDefs. Section TasksetDefs.
Definition taskset_of (T: eqType) := seq T.
(* A task set is just a sequence of tasks. *)
Definition taskset_of (Task: eqType) := seq Task.
(* Next, we define some properties of a task set. *)
Section TasksetProperties. Section TasksetProperties.
Context {Task: eqType}. Context {Task: eqType}.
...@@ -47,11 +53,13 @@ Module SporadicTaskset. ...@@ -47,11 +53,13 @@ Module SporadicTaskset.
Variable ts: taskset_of Task. Variable ts: taskset_of Task.
(* A valid sporadic taskset only contains valid tasks. *)
Definition valid_sporadic_taskset := Definition valid_sporadic_taskset :=
forall tsk, forall tsk,
tsk \in ts -> is_valid_task tsk. tsk \in ts -> is_valid_task tsk.
(* Deadline models: implicit, restricted or arbitrary *) (* A task set can satisfy one of three deadline models:
implicit, restricted, or arbitrary. *)
Definition implicit_deadline_model := Definition implicit_deadline_model :=
forall tsk, forall tsk,
tsk \in ts -> task_deadline tsk = task_period tsk. tsk \in ts -> task_deadline tsk = task_period tsk.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment