Library prosa.model.processor.ideal
The Ideal Uniprocessor Model
Consider any type of jobs.
We define the ideal "processor state" as an option Job, which means
that it is either Some j (where j is a Job) or None (which we use
to indicate an idle instant).
Based on this definition, we say that a given job j is scheduled in a
given state s iff s is Some j.
Next, we connect the just-defined notion of an ideal processor state with
the generic interface for the processor-state abstraction in Prosa by
declaring a so-called instance of the ProcessorState typeclass.
As this is a uniprocessor model, cores are implicitly defined
as the unit type containing a single element as a placeholder.
scheduled_on j s (_ : unit) := ideal_scheduled_at j s;
service_in j s := ideal_service_in j s;
}.
Next Obligation.
rewrite /ideal_service_in /nat_of_bool.
case: ifP H =>//= SOME /existsP[].
by ∃ tt.
Defined.
End State.
service_in j s := ideal_service_in j s;
}.
Next Obligation.
rewrite /ideal_service_in /nat_of_bool.
case: ifP H =>//= SOME /existsP[].
by ∃ tt.
Defined.
End State.
Consider any type of jobs...
... and any ideal uniprocessor schedule of such jobs.
We say that the processor is idle at time t iff there is no job being scheduled.