Skip to content
Snippets Groups Projects
Commit a16befa1 authored by Pierre Roux's avatar Pierre Roux Committed by Björn Brandenburg
Browse files

Make the fully nonpreemptive model hypothesis more explicit

parent 3c3eb2b2
No related branches found
No related tags found
1 merge request!205Make instances of most type classes local
Require Export prosa.analysis.facts.preemption.job.nonpreemptive. Require Export prosa.analysis.facts.preemption.job.nonpreemptive.
(** Furthermore, we assume the fully non-preemptive task model. *)
Require Import prosa.model.preemption.fully_nonpreemptive. Require Import prosa.model.preemption.fully_nonpreemptive.
Require Import prosa.model.task.preemption.fully_nonpreemptive. Require Import prosa.model.task.preemption.fully_nonpreemptive.
...@@ -10,6 +8,10 @@ Require Import prosa.model.task.preemption.fully_nonpreemptive. ...@@ -10,6 +8,10 @@ Require Import prosa.model.task.preemption.fully_nonpreemptive.
indeed defines a valid run-to-completion threshold function. *) indeed defines a valid run-to-completion threshold function. *)
Section TaskRTCThresholdFullyNonPreemptive. Section TaskRTCThresholdFullyNonPreemptive.
(** We assume the fully non-preemptive task model. *)
#[local] Existing Instance fully_nonpreemptive_model.
#[local] Existing Instance fully_nonpreemptive.
(** Consider any type of tasks ... *) (** Consider any type of tasks ... *)
Context {Task : TaskType}. Context {Task : TaskType}.
Context `{TaskCost Task}. Context `{TaskCost Task}.
......
Require Export prosa.analysis.facts.preemption.job.nonpreemptive. Require Export prosa.analysis.facts.preemption.job.nonpreemptive.
(** Furthermore, we assume the fully non-preemptive task model. *)
Require Import prosa.model.preemption.fully_nonpreemptive. Require Import prosa.model.preemption.fully_nonpreemptive.
Require Import prosa.model.task.preemption.fully_nonpreemptive. Require Import prosa.model.task.preemption.fully_nonpreemptive.
...@@ -11,6 +9,10 @@ Require Import prosa.model.task.preemption.fully_nonpreemptive. ...@@ -11,6 +9,10 @@ Require Import prosa.model.task.preemption.fully_nonpreemptive.
bounded non-preemptive regions. *) bounded non-preemptive regions. *)
Section FullyNonPreemptiveModel. Section FullyNonPreemptiveModel.
(** We assume the fully non-preemptive task model. *)
#[local] Existing Instance fully_nonpreemptive_model.
#[local] Existing Instance fully_nonpreemptive.
(** Consider any type of tasks ... *) (** Consider any type of tasks ... *)
Context {Task : TaskType}. Context {Task : TaskType}.
Context `{TaskCost Task}. Context `{TaskCost Task}.
......
...@@ -13,10 +13,8 @@ Section FullyNonPreemptiveModel. ...@@ -13,10 +13,8 @@ Section FullyNonPreemptiveModel.
(** In the fully non-preemptive model, no job can be preempted until its (** In the fully non-preemptive model, no job can be preempted until its
completion. The maximal non-preemptive segment of a job [j] has length completion. The maximal non-preemptive segment of a job [j] has length
[job_cost j], which is bounded by [task_cost tsk].*) [job_cost j], which is bounded by [task_cost tsk].*)
Global Program Instance fully_nonpreemptive_model : TaskMaxNonpreemptiveSegment Task := Definition fully_nonpreemptive_model : TaskMaxNonpreemptiveSegment Task :=
{ fun tsk : Task => task_cost tsk.
task_max_nonpreemptive_segment (tsk : Task) := task_cost tsk
}.
End FullyNonPreemptiveModel. End FullyNonPreemptiveModel.
...@@ -33,9 +31,7 @@ Section TaskRTCThresholdFullyNonPreemptive. ...@@ -33,9 +31,7 @@ Section TaskRTCThresholdFullyNonPreemptive.
completion. In other words, once a job starts running, it is guaranteed completion. In other words, once a job starts running, it is guaranteed
to finish. Thus, we can set the task-level run-to-completion threshold to finish. Thus, we can set the task-level run-to-completion threshold
to ε. *) to ε. *)
Global Program Instance fully_nonpreemptive : TaskRunToCompletionThreshold Task := Definition fully_nonpreemptive : TaskRunToCompletionThreshold Task :=
{ fun tsk : Task => ε.
task_rtct (tsk : Task) := ε
}.
End TaskRTCThresholdFullyNonPreemptive. End TaskRTCThresholdFullyNonPreemptive.
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