Skip to content
Snippets Groups Projects
  1. May 09, 2022
    • Marco Maida's avatar
      introduce "greedy" concrete arrival sequence · e122dbb1
      Marco Maida authored and Björn Brandenburg's avatar Björn Brandenburg committed
      This commit defines and adds facts about a concrete arrival sequence in
      which tasks release jobs "as quickly as possible" as allowed by their
      respective arrival-curve constraints. This maximal arrival sequence is
      used in POET to generate assumption-less certificates.
      e122dbb1
  2. May 06, 2022
    • Kimaya Bedarkar's avatar
      modify definitions of priority policy compliance · 41a542a8
      Kimaya Bedarkar authored and Björn Brandenburg's avatar Björn Brandenburg committed
      The current definitions of `respects_JLFP_policy_at_preemption_time`
      and `respects_FP_policy_at_preemption_time` use the predicate
      `hep_job_at`. This predicate does not make sense for `JLFP`
      and `FP` policies. To avoid this, these definitions should
      instead use the definition `respects_JLDP_policy_at_preemption_point`.
      Doing this requires coercions from `JLFP` to `JLDP` and from
      `FP` to `JLFP`. This patch also introduces these coercions.
      41a542a8
  3. May 05, 2022
  4. Apr 19, 2022
  5. Apr 14, 2022
  6. Apr 13, 2022
    • Pierre Roux's avatar
      fix the `job_preemption_points` name clash · f925eeee
      Pierre Roux authored and Björn Brandenburg's avatar Björn Brandenburg committed
      Rename the type-class parameter to `job_preemptive_points` to avoid a
      name clash with the the definition of the same name.
      
      Keep `JobPreemptionPoints` to match `TaskPreemptionPoints`. This does
      not  result in a name clash.
      f925eeee
  7. Apr 07, 2022
    • Björn Brandenburg's avatar
      CI: fix opam-triggered recompilation · 903e5476
      Björn Brandenburg authored
      903e5476
    • Björn Brandenburg's avatar
    • Björn Brandenburg's avatar
      enable periodic->RBF auto conversion · 5d5f9c72
      Björn Brandenburg authored
      NB: This requires bumping up the "depth" parameter of `rt_auto` and `rt_eauto`.
      
      As a benefit, it becomes possible to automatically use RBFs in the
      context of periodic tasks, sporadic tasks, and tasks with arrival
      curves. Full example:
      
      ```
      Require Import prosa.model.task.arrival.periodic.
      Require Import prosa.model.task.arrival.periodic_as_sporadic.
      Require Import prosa.model.task.arrival.sporadic_as_curve.
      Require Import prosa.model.task.arrival.curve_as_rbf.
      
      Section AutoArrivalModelConversion.
      
        Context {Job : JobType} `{JobArrival Job}.
        Context {Task : TaskType} `{PeriodicModel Task} `{JobTask Job Task}.
      
        Variable ts : TaskSet Task.
      
        Variable arr_seq : arrival_sequence Job.
        Hypothesis H_consistent_arrivals: consistent_arrival_times arr_seq.
        Hypothesis H_uniq_arr_seq: arrival_sequence_uniq arr_seq.
      
        Hypothesis H_valid_periods : valid_periods ts.
        Hypothesis H_respects : taskset_respects_periodic_task_model arr_seq ts.
      
        Context `{JobCost Job} `{TaskCost Task}.
        Hypothesis H_valid_costs : jobs_have_valid_job_costs.
      
        (** Interpret as an RBF. *)
      
        Goal valid_taskset_request_bound_function ts (task_max_rbf max_arrivals).
        Proof. by rt_auto. Qed.
      
        Goal taskset_respects_max_request_bound arr_seq ts.
        Proof. rt_eauto. Qed.
      
      End AutoArrivalModelConversion.
      ```
      5d5f9c72
    • Björn Brandenburg's avatar
      enable automatic arrival-model conversion · 87001429
      Björn Brandenburg authored
      This commit makes it possible to transparently interpret periodic
      tasks as sporadic tasks, and sporadic tasks as tasks with an arrival
      curve, such that all proof obligations can satisfied by `rt_auto` and
      `rt_eauto`. Full example:
      
      ```
      Require Import prosa.model.task.arrival.periodic.
      Require Import prosa.model.task.arrival.periodic_as_sporadic.
      Require Import prosa.model.task.arrival.sporadic_as_curve.
      
      Section AutoArrivalModelConversion.
      
        Context {Job : JobType} `{JobArrival Job}.
        Context {Task : TaskType} `{PeriodicModel Task} `{JobTask Job Task}.
      
        Variable ts : TaskSet Task.
      
        Variable arr_seq : arrival_sequence Job.
        Hypothesis H_consistent_arrivals: consistent_arrival_times arr_seq.
        Hypothesis H_uniq_arr_seq: arrival_sequence_uniq arr_seq.
      
        Hypothesis H_valid_periods : valid_periods ts.
      
        Hypothesis H_respects : taskset_respects_periodic_task_model arr_seq ts.
      
        (** 1. Interpret as sporadic: *)
        Goal valid_taskset_inter_arrival_times ts.
        Proof. by rt_auto. Qed.
      
        Goal taskset_respects_sporadic_task_model ts arr_seq.
        Proof. by rt_auto. Qed.
      
        (** 2. Interpret as an arrival curve. *)
        Goal valid_taskset_arrival_curve ts max_arrivals.
        Proof. by rt_auto. Qed.
      
        Goal taskset_respects_max_arrivals arr_seq ts.
        Proof. by rt_eauto. Qed.
      
      End AutoArrivalModelConversion.
      
      ```
      87001429
    • Björn Brandenburg's avatar
      reorganize arrival model conversions · fb114469
      Björn Brandenburg authored
      - move all to `prosa.model.task.arrival`
      - unify names to `${FOO}_as_${BAR}.v`
      fb114469
    • Björn Brandenburg's avatar
    • Björn Brandenburg's avatar
      83204784
    • Björn Brandenburg's avatar
    • Björn Brandenburg's avatar
      485b88ca
    • Björn Brandenburg's avatar
      d6ce34a8
Loading