Library prosa.behavior.schedule
From mathcomp Require Export ssreflect ssrnat ssrbool eqtype fintype bigop.
Require Export prosa.behavior.arrival_sequence.
Require Export prosa.behavior.arrival_sequence.
Generic Processor State
A ProcessorState instance provides a finite set of cores on which
jobs can be scheduled. In the case of uniprocessors, this is irrelevant
and may be ignored (by convention, the unit type is used as a
placeholder in uniprocessor schedules, but this is not
important). (Hint to the Coq novice: finType just means some type
with finitely many values, i.e., it is possible to enumerate all cores
of a multi-processor.)
For a given processor state and core, the scheduled_on predicate
checks whether a given job is running on the given core.
For a given processor state, the scheduled_in predicate checks
whether a given job is running on any core in that state.
For a given processor state, the service_in function determines how
much service a given job receives in that state (across all cores).
For a given processor state, a job does not receive service if it is
not scheduled in that state
Schedule Representation
The following line instructs Coq to not let proofs use knowledge of how
scheduled_on, scheduled_in, and service_in are defined. Instead,
proofs must rely on basic lemmas about processor state classes.