Library prosa.results.periodic.simulation.gel

GEL Schedulability by Simulation

We specialize jlfp_finite_deadline_check and jlfp_taskset_schedulable from prosa.results.periodic.simulation.interval to GEL with ties resolved by task and job IDs.
The general result formalizes, in discrete time, the simulation bound and finite deadline-check argument of Guidolin–Pina et al., “Minimal simulation interval for periodic task schedulers”, Journal of Systems Architecture 179 (2026), 103939.
DOI: 10.1016/j.sysarc.2026.103939
Under the assumptions below, checking the deadlines of jobs arriving before simulation_horizon establishes schedulability of the entire periodic task set on a fully preemptive ideal uniprocessor.
Consistent tie-breaking by task and job IDs ensures that job priorities are antisymmetric under GEL. Additionally, GEL naturally ensures consistent prioritization across hyperperiods. Together, these two properties allow us to apply the general JLFP result.
Consider periodic tasks with offsets, execution costs, relative deadlines, relative priority points, and numeric identifiers ...
  Context {Task : TaskType} `{TaskOffset Task} `{PeriodicModel Task}
          `{TaskCost Task} `{TaskDeadline Task} `{PriorityPoint Task} `{TaskId Task}.

... and their jobs, with derived absolute deadlines and priority points, and numeric identifiers.
  Context {Job : JobType} `{JobTask Job Task} `{JobArrival Job} `{JobCost Job} `{JobId Job}.

Suppose the task set has valid periods ...
  Variable ts : TaskSet Task.
  Hypothesis H_valid_periods : valid_periods ts.

... and unique task IDs, making task-level tie-breaking consistent.
  Hypothesis H_valid_task_ids : valid_task_ids ts.

The tasks generate a valid infinite arrival sequence ...
... with unambiguous job IDs ...
... and periodic arrivals starting at each task's offset.
Simulation uses each task's WCET for all of its jobs.
  Hypothesis H_fixed_job_costs :
    ∀ j,
      arrives_in arr_seq j →
      job_cost j = task_cost (job_task j).

Assume the system is not permanently overloaded.
We restrict our attention to the basic Liu-and-Layland-style job readiness model, where every pending job is always ready to execute, ...
... and also assume that jobs are fully preemptive.
  #[local] Existing Instance fully_preemptive_job_model.

Consider a valid, work-conserving, ideal uniprocessor schedule ...
  #[local] Existing Instance ideal.processor_state.
  Variable sched : schedule (ideal.processor_state Job).
  Hypothesis H_valid_schedule : valid_schedule sched arr_seq.
  Hypothesis H_work_conserving : work_conserving arr_seq sched.

... that follows GEL with identifier-based tie-breaking.
Under these assumptions, the generic periodic simulation interval bound applies to GEL.
Checking all deadlines up to the finite horizon by simulation thus establishes schedulability of the entire task set.