Library rt.restructuring.model.schedule.preemption_time

Throughout this file, we assume ideal uniprocessor schedules.

Preemption Time in Ideal Uni-Processor Model

In this section we define the notion of preemption time for ideal uni-processor model.
Section PreemptionTime.

Consider any type of jobs...
  Context {Job : JobType}.
  Context `{JobArrival Job}.
  Context `{JobCost Job}.

... and assume the existence of a function mapping a job and its progress to a boolean value saying whether this job is preemptable at its current point of execution.
  Context `{JobPreemptable Job}.

Consider any arrival sequence with consistent arrivals.
Next, consider any ideal uniprocessor schedule of this arrival sequence ...
We say that a time instant t is a preemption time iff the job that is currently scheduled at t can be preempted (according to the predicate).
  Definition preemption_time (t : instant) :=
    if sched t is Some j then
      job_preemptable j (service sched j t)
    else true.

End PreemptionTime.