Library prosa.model.readiness.jitter
From mathcomp Require Export ssreflect ssrnat ssrbool eqtype fintype bigop.
Require Export prosa.behavior.all.
Require Import prosa.util.nat.
Require Export prosa.behavior.all.
Require Import prosa.util.nat.
Job Model Parameter for Jobs Exhibiting Release Jitter
Readiness of Jobs with Release Jitter
Consider any kind of jobs...
... and any kind of processor state.
Suppose jobs have an arrival time, a cost, and exhibit release jitter.
We say that a job is released at a time t after its arrival if the
job's release jitter has passed.
Based on the predicate is_released, it is easy to state the notion of
readiness for jobs subject to release jitter: a job is ready only if it
is released and not yet complete.
#[local,program] Instance jitter_ready_instance : JobReady Job PState :=
{
job_ready sched j t := is_released j t && ~~ completed_by sched j t
}.
Next Obligation.
move: H2 ⇒ /andP [REL UNFINISHED].
rewrite /pending. apply /andP. split ⇒ //.
move: REL. rewrite /is_released /has_arrived.
by apply: leq_trans; rewrite leq_addr.
Qed.
End ReadinessOfJitteryJobs.
{
job_ready sched j t := is_released j t && ~~ completed_by sched j t
}.
Next Obligation.
move: H2 ⇒ /andP [REL UNFINISHED].
rewrite /pending. apply /andP. split ⇒ //.
move: REL. rewrite /is_released /has_arrived.
by apply: leq_trans; rewrite leq_addr.
Qed.
End ReadinessOfJitteryJobs.