From ba7584666bf4b08c861319e5b1548cbe88db427b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Brandenburg?= <bbb@mpi-sws.org> Date: Fri, 22 Nov 2019 16:47:22 +0100 Subject: [PATCH] model reorg: have only one notion of priority-driven schedules The Prosa notion of priority-driven scheduling depends on the preemption model. That is ok; any theory that doesn't want to deal with non-preemptive sections can simply Require Export the fully preemptive model and be done with it. --- .../rta/nonpr_reg/concrete_models/floating.v | 2 +- .../rta/nonpr_reg/concrete_models/limited.v | 2 +- .../nonpr_reg/concrete_models/nonpreemptive.v | 2 +- .../nonpr_reg/concrete_models/preemptive.v | 2 +- .../edf/rta/nonpr_reg/response_time_bound.v | 2 +- .../analysis/edf/rta/response_time_bound.v | 2 +- .../facts/priority_inversion_is_bounded.v | 2 +- .../rta/nonpr_reg/concrete_models/floating.v | 2 +- .../rta/nonpr_reg/concrete_models/limited.v | 2 +- .../nonpr_reg/concrete_models/nonpreemptive.v | 2 +- .../nonpr_reg/concrete_models/preemptive.v | 2 +- .../rta/nonpr_reg/response_time_bound.v | 2 +- .../fixed_priority/rta/response_time_bound.v | 2 +- .../schedule/priority_based/preemptive.v | 28 ------------------- .../preemption_aware.v => priority_driven.v} | 0 15 files changed, 13 insertions(+), 41 deletions(-) delete mode 100644 restructuring/model/schedule/priority_based/preemptive.v rename restructuring/model/schedule/{priority_based/preemption_aware.v => priority_driven.v} (100%) diff --git a/restructuring/analysis/edf/rta/nonpr_reg/concrete_models/floating.v b/restructuring/analysis/edf/rta/nonpr_reg/concrete_models/floating.v index 719cb129f..36179365d 100644 --- a/restructuring/analysis/edf/rta/nonpr_reg/concrete_models/floating.v +++ b/restructuring/analysis/edf/rta/nonpr_reg/concrete_models/floating.v @@ -11,7 +11,7 @@ Require Import rt.restructuring.model.preemption.floating. Require Import rt.restructuring.model.schedule.work_conserving. Require Import rt.restructuring.model.priority.classes. Require Import rt.restructuring.model.priority.edf. -Require Import rt.restructuring.model.schedule.priority_based.preemption_aware. +Require Import rt.restructuring.model.schedule.priority_driven. Require Import rt.restructuring.analysis.arrival.workload_bound. Require Import rt.restructuring.analysis.arrival.rbf. Require Import rt.restructuring.analysis.edf.rta.nonpr_reg.response_time_bound. diff --git a/restructuring/analysis/edf/rta/nonpr_reg/concrete_models/limited.v b/restructuring/analysis/edf/rta/nonpr_reg/concrete_models/limited.v index 23893b26d..1d743f001 100644 --- a/restructuring/analysis/edf/rta/nonpr_reg/concrete_models/limited.v +++ b/restructuring/analysis/edf/rta/nonpr_reg/concrete_models/limited.v @@ -11,7 +11,7 @@ Require Import rt.restructuring.model.preemption.limited. Require Import rt.restructuring.model.schedule.work_conserving. Require Import rt.restructuring.model.priority.classes. Require Import rt.restructuring.model.priority.edf. -Require Import rt.restructuring.model.schedule.priority_based.preemption_aware. +Require Import rt.restructuring.model.schedule.priority_driven. Require Import rt.restructuring.analysis.arrival.workload_bound. Require Import rt.restructuring.analysis.arrival.rbf. Require Import rt.restructuring.analysis.edf.rta.nonpr_reg.response_time_bound. diff --git a/restructuring/analysis/edf/rta/nonpr_reg/concrete_models/nonpreemptive.v b/restructuring/analysis/edf/rta/nonpr_reg/concrete_models/nonpreemptive.v index 80a489504..e5536a880 100644 --- a/restructuring/analysis/edf/rta/nonpr_reg/concrete_models/nonpreemptive.v +++ b/restructuring/analysis/edf/rta/nonpr_reg/concrete_models/nonpreemptive.v @@ -10,7 +10,7 @@ Require Import rt.restructuring.model.arrival.arrival_curves. Require Import rt.restructuring.model.schedule.work_conserving. Require Import rt.restructuring.model.priority.classes. Require Import rt.restructuring.model.priority.edf. -Require Import rt.restructuring.model.schedule.priority_based.preemption_aware. +Require Import rt.restructuring.model.schedule.priority_driven. Require Import rt.restructuring.analysis.arrival.workload_bound. Require Import rt.restructuring.analysis.arrival.rbf. Require Import rt.restructuring.analysis.edf.rta.nonpr_reg.response_time_bound. diff --git a/restructuring/analysis/edf/rta/nonpr_reg/concrete_models/preemptive.v b/restructuring/analysis/edf/rta/nonpr_reg/concrete_models/preemptive.v index d8d5d1e7e..a01366022 100644 --- a/restructuring/analysis/edf/rta/nonpr_reg/concrete_models/preemptive.v +++ b/restructuring/analysis/edf/rta/nonpr_reg/concrete_models/preemptive.v @@ -10,7 +10,7 @@ Require Import rt.restructuring.model.arrival.arrival_curves. Require Import rt.restructuring.model.schedule.work_conserving. Require Import rt.restructuring.model.priority.classes. Require Import rt.restructuring.model.priority.edf. -Require Import rt.restructuring.model.schedule.priority_based.preemption_aware. +Require Import rt.restructuring.model.schedule.priority_driven. Require Import rt.restructuring.analysis.arrival.workload_bound. Require Import rt.restructuring.analysis.arrival.rbf. Require Import rt.restructuring.analysis.edf.rta.nonpr_reg.response_time_bound. diff --git a/restructuring/analysis/edf/rta/nonpr_reg/response_time_bound.v b/restructuring/analysis/edf/rta/nonpr_reg/response_time_bound.v index 55ecf77dc..e44a589f4 100644 --- a/restructuring/analysis/edf/rta/nonpr_reg/response_time_bound.v +++ b/restructuring/analysis/edf/rta/nonpr_reg/response_time_bound.v @@ -16,7 +16,7 @@ Require Import rt.restructuring.analysis.facts.priority_inversion_is_bounded. Require Import rt.restructuring.model.schedule.work_conserving. Require Import rt.restructuring.model.priority.classes. Require Import rt.restructuring.model.priority.edf. -Require Import rt.restructuring.model.schedule.priority_based.preemption_aware. +Require Import rt.restructuring.model.schedule.priority_driven. Require Import rt.restructuring.analysis.arrival.workload_bound. Require Import rt.restructuring.analysis.arrival.rbf. Require Export rt.restructuring.analysis.edf.rta.response_time_bound. diff --git a/restructuring/analysis/edf/rta/response_time_bound.v b/restructuring/analysis/edf/rta/response_time_bound.v index 4c5a3284f..5eb78f449 100644 --- a/restructuring/analysis/edf/rta/response_time_bound.v +++ b/restructuring/analysis/edf/rta/response_time_bound.v @@ -16,7 +16,7 @@ Require Import rt.restructuring.analysis.basic_facts.preemption.rtc_threshold.jo Require Import rt.restructuring.model.schedule.work_conserving. Require Import rt.restructuring.model.priority.classes. Require Import rt.restructuring.model.priority.edf. -Require Import rt.restructuring.model.schedule.priority_based.preemption_aware. +Require Import rt.restructuring.model.schedule.priority_driven. Require Import rt.restructuring.analysis.arrival.workload_bound. Require Import rt.restructuring.analysis.arrival.rbf. Require Export rt.restructuring.analysis.schedulability. diff --git a/restructuring/analysis/facts/priority_inversion_is_bounded.v b/restructuring/analysis/facts/priority_inversion_is_bounded.v index 9e7880b56..771e3324d 100644 --- a/restructuring/analysis/facts/priority_inversion_is_bounded.v +++ b/restructuring/analysis/facts/priority_inversion_is_bounded.v @@ -5,7 +5,7 @@ Require Import rt.restructuring.model.preemption.valid_model. Require Import rt.restructuring.model.preemption.preemption_time. Require Import rt.restructuring.model.preemption.job.parameters. Require Import rt.restructuring.model.preemption.task.parameters. -Require Import rt.restructuring.model.schedule.priority_based.preemption_aware. +Require Import rt.restructuring.model.schedule.priority_driven. Require Export rt.restructuring.analysis.definitions.no_carry_in. Require Export rt.restructuring.analysis.definitions.busy_interval. Require Export rt.restructuring.analysis.definitions.priority_inversion. diff --git a/restructuring/analysis/fixed_priority/rta/nonpr_reg/concrete_models/floating.v b/restructuring/analysis/fixed_priority/rta/nonpr_reg/concrete_models/floating.v index 3f15c28b0..1a61e9aff 100644 --- a/restructuring/analysis/fixed_priority/rta/nonpr_reg/concrete_models/floating.v +++ b/restructuring/analysis/fixed_priority/rta/nonpr_reg/concrete_models/floating.v @@ -10,7 +10,7 @@ Require Import rt.restructuring.model.arrival.arrival_curves. Require Import rt.restructuring.model.preemption.floating. Require Import rt.restructuring.model.schedule.work_conserving. Require Import rt.restructuring.model.priority.classes. -Require Import rt.restructuring.model.schedule.priority_based.preemption_aware. +Require Import rt.restructuring.model.schedule.priority_driven. Require Import rt.restructuring.analysis.arrival.workload_bound. Require Import rt.restructuring.analysis.arrival.rbf. Require Import rt.restructuring.analysis.fixed_priority.rta.nonpr_reg.response_time_bound. diff --git a/restructuring/analysis/fixed_priority/rta/nonpr_reg/concrete_models/limited.v b/restructuring/analysis/fixed_priority/rta/nonpr_reg/concrete_models/limited.v index fe73e59a1..05213cf7e 100644 --- a/restructuring/analysis/fixed_priority/rta/nonpr_reg/concrete_models/limited.v +++ b/restructuring/analysis/fixed_priority/rta/nonpr_reg/concrete_models/limited.v @@ -10,7 +10,7 @@ Require Import rt.restructuring.model.arrival.arrival_curves. Require Import rt.restructuring.model.preemption.limited. Require Import rt.restructuring.model.schedule.work_conserving. Require Import rt.restructuring.model.priority.classes. -Require Import rt.restructuring.model.schedule.priority_based.preemption_aware. +Require Import rt.restructuring.model.schedule.priority_driven. Require Import rt.restructuring.analysis.arrival.workload_bound. Require Import rt.restructuring.analysis.arrival.rbf. Require Import rt.restructuring.analysis.fixed_priority.rta.nonpr_reg.response_time_bound. diff --git a/restructuring/analysis/fixed_priority/rta/nonpr_reg/concrete_models/nonpreemptive.v b/restructuring/analysis/fixed_priority/rta/nonpr_reg/concrete_models/nonpreemptive.v index 78c93cd06..58a8bbad0 100644 --- a/restructuring/analysis/fixed_priority/rta/nonpr_reg/concrete_models/nonpreemptive.v +++ b/restructuring/analysis/fixed_priority/rta/nonpr_reg/concrete_models/nonpreemptive.v @@ -9,7 +9,7 @@ Require Import rt.restructuring.model.readiness.basic. Require Import rt.restructuring.model.arrival.arrival_curves. Require Import rt.restructuring.model.schedule.work_conserving. Require Import rt.restructuring.model.priority.classes. -Require Import rt.restructuring.model.schedule.priority_based.preemption_aware. +Require Import rt.restructuring.model.schedule.priority_driven. Require Import rt.restructuring.analysis.arrival.workload_bound. Require Import rt.restructuring.analysis.arrival.rbf. Require Import rt.restructuring.analysis.fixed_priority.rta.nonpr_reg.response_time_bound. diff --git a/restructuring/analysis/fixed_priority/rta/nonpr_reg/concrete_models/preemptive.v b/restructuring/analysis/fixed_priority/rta/nonpr_reg/concrete_models/preemptive.v index 565952da9..70cefe5ca 100644 --- a/restructuring/analysis/fixed_priority/rta/nonpr_reg/concrete_models/preemptive.v +++ b/restructuring/analysis/fixed_priority/rta/nonpr_reg/concrete_models/preemptive.v @@ -9,7 +9,7 @@ Require Import rt.restructuring.model.readiness.basic. Require Import rt.restructuring.model.arrival.arrival_curves. Require Import rt.restructuring.model.schedule.work_conserving. Require Import rt.restructuring.model.priority.classes. -Require Import rt.restructuring.model.schedule.priority_based.preemption_aware. +Require Import rt.restructuring.model.schedule.priority_driven. Require Import rt.restructuring.analysis.arrival.workload_bound. Require Import rt.restructuring.analysis.arrival.rbf. Require Import rt.restructuring.analysis.fixed_priority.rta.nonpr_reg.response_time_bound. diff --git a/restructuring/analysis/fixed_priority/rta/nonpr_reg/response_time_bound.v b/restructuring/analysis/fixed_priority/rta/nonpr_reg/response_time_bound.v index 1b91e8ccf..ffec52ae6 100644 --- a/restructuring/analysis/fixed_priority/rta/nonpr_reg/response_time_bound.v +++ b/restructuring/analysis/fixed_priority/rta/nonpr_reg/response_time_bound.v @@ -13,7 +13,7 @@ Require Import rt.restructuring.model.preemption.task.parameters. Require Import rt.restructuring.model.preemption.rtc_threshold.valid_rtct. Require Import rt.restructuring.model.schedule.work_conserving. Require Import rt.restructuring.model.priority.classes. -Require Import rt.restructuring.model.schedule.priority_based.preemption_aware. +Require Import rt.restructuring.model.schedule.priority_driven. Require Import rt.restructuring.analysis.arrival.workload_bound. Require Import rt.restructuring.analysis.arrival.rbf. Require Export rt.restructuring.analysis.fixed_priority.rta.response_time_bound. diff --git a/restructuring/analysis/fixed_priority/rta/response_time_bound.v b/restructuring/analysis/fixed_priority/rta/response_time_bound.v index b1ed59948..facdb26cd 100644 --- a/restructuring/analysis/fixed_priority/rta/response_time_bound.v +++ b/restructuring/analysis/fixed_priority/rta/response_time_bound.v @@ -13,7 +13,7 @@ Require Import rt.restructuring.model.preemption.task.parameters. Require Import rt.restructuring.model.preemption.rtc_threshold.valid_rtct. Require Import rt.restructuring.model.schedule.work_conserving. Require Import rt.restructuring.model.priority.classes. -Require Import rt.restructuring.model.schedule.priority_based.preemption_aware. +Require Import rt.restructuring.model.schedule.priority_driven. Require Import rt.restructuring.analysis.arrival.workload_bound. Require Import rt.restructuring.analysis.arrival.rbf. Require Export rt.restructuring.analysis.schedulability. diff --git a/restructuring/model/schedule/priority_based/preemptive.v b/restructuring/model/schedule/priority_based/preemptive.v deleted file mode 100644 index d41123a36..000000000 --- a/restructuring/model/schedule/priority_based/preemptive.v +++ /dev/null @@ -1,28 +0,0 @@ -Require Export rt.restructuring.model.priority.classes. - -(** We now define what it means for a schedule to respect a priority *) -(** We only define it for a JLDP policy since the definitions for JLDP and JLFP are the same - and can be used through the conversions *) -Section Priority. - Context {Job: JobType} {Task: TaskType}. - Context `{JobCost Job} `{JobArrival Job}. - - Context `{JLDP_policy Job}. - - Variable arr_seq : arrival_sequence Job. - - Context {PState : Type}. - Context `{ProcessorState Job PState}. - - Context `{JobReady Job PState}. - - Variable sched : schedule PState. - - Definition respects_preemptive_priorities := - forall j j_hp t, - arrives_in arr_seq j -> - backlogged sched j t -> - scheduled_at sched j_hp t -> - hep_job_at t j_hp j. - -End Priority. diff --git a/restructuring/model/schedule/priority_based/preemption_aware.v b/restructuring/model/schedule/priority_driven.v similarity index 100% rename from restructuring/model/schedule/priority_based/preemption_aware.v rename to restructuring/model/schedule/priority_driven.v -- GitLab