Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
PROSA - Formally Proven Schedulability Analysis
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
RT-PROOFS
PROSA - Formally Proven Schedulability Analysis
Commits
23975eed
Commit
23975eed
authored
3 years ago
by
Kimaya Bedarkar
Committed by
Björn Brandenburg
3 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Comment fixes in files
parent
daa90bd8
No related branches found
Branches containing commit
No related tags found
Tags containing commit
1 merge request
!172
New lemmas in job_cost facts and fifo-basic-facts
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
results/edf/rta/bounded_pi.v
+14
-13
14 additions, 13 deletions
results/edf/rta/bounded_pi.v
results/fixed_priority/rta/bounded_pi.v
+5
-5
5 additions, 5 deletions
results/fixed_priority/rta/bounded_pi.v
with
19 additions
and
18 deletions
results/edf/rta/bounded_pi.v
+
14
−
13
View file @
23975eed
...
...
@@ -186,7 +186,7 @@ Section AbstractRTAforEDFwithArrivalCurves.
R
>=
F
+
(
task_cost
tsk
-
task_rtct
tsk
)
.
(** To use the theorem uniprocessor_response_time_bound_seq from the Abstract RTA module,
we need to specify functions of interference, interfering workload and IBF. *)
we need to specify functions of interference, interfering workload and
[
IBF
_other]
. *)
(** Instantiation of Interference *)
(** We say that job j incurs interference at time t iff it cannot execute due to
...
...
@@ -200,9 +200,10 @@ Section AbstractRTAforEDFwithArrivalCurves.
Let
interfering_workload
(
j
:
Job
)
(
t
:
instant
)
:=
ideal_jlfp_rta
.
interfering_workload
arr_seq
sched
j
t
.
(** Finally, we define the interference bound function ([IBF_other]). [IBF_other] bounds the interference if tasks are sequential.
Since tasks are sequential, we exclude interference from other jobs of the same task. For EDF, we define [IBF_other] as the sum of the priority
interference bound and the higher-or-equal-priority workload. *)
(** Finally, we define the interference bound function ([IBF_other]). [IBF_other] bounds
the interference if tasks are sequential. Since tasks are sequential, we exclude
interference from other jobs of the same task. For EDF, we define [IBF_other] as
the sum of the priority interference bound and the higher-or-equal-priority workload. *)
Let
IBF_other
(
A
R
:
duration
)
:=
priority_inversion_bound
+
bound_on_total_hep_workload
A
R
.
(** ** Filling Out Hypothesis Of Abstract RTA Theorem *)
...
...
@@ -292,14 +293,14 @@ Section AbstractRTAforEDFwithArrivalCurves.
by
eapply
instantiated_busy_interval_equivalent_busy_interval
;
eauto
2
with
basic_facts
.
Qed
.
(** Next, we prove that IBF is indeed an interference bound. *)
Section
TaskInterferenceIsBoundedByIBF
.
(** Next, we prove that
[
IBF
_other]
is indeed an interference bound. *)
Section
TaskInterferenceIsBoundedByIBF
_other
.
(** We show that task_interference_is_bounded_by is bounded by IBF by
(** We show that task_interference_is_bounded_by is bounded by
[
IBF
_other]
by
constructing a sequence of inequalities. *)
Section
Inequalities
.
(* Consider an arbitrary job j of [tsk]. *)
(*
*
Consider an arbitrary job j of [tsk]. *)
Variable
j
:
Job
.
Hypothesis
H_j_arrives
:
arrives_in
arr_seq
j
.
Hypothesis
H_job_of_tsk
:
job_task
j
=
tsk
.
...
...
@@ -330,7 +331,7 @@ Section AbstractRTAforEDFwithArrivalCurves.
such that [job_deadline jo <= job_deadline j] and [job_task jo ≠ tsk]. *)
Let
EDF_not_from
(
tsk
:
Task
)
:=
fun
(
jo
:
Job
)
=>
EDF
jo
j
&&
(
job_task
jo
!=
tsk
)
.
(** Recall that [IBF(A, R) := priority_inversion_bound +
(** Recall that [IBF
_other
(A, R) := priority_inversion_bound +
bound_on_total_hep_workload(A, R)]. The fact that
[priority_inversion_bound] bounds cumulative priority inversion
follows from assumption [H_priority_inversion_is_bounded]. *)
...
...
@@ -563,9 +564,9 @@ Section AbstractRTAforEDFwithArrivalCurves.
However, in this module we analyze only one task -- [tsk],
therefore it is “hard-coded” inside the interference bound
function IBF. Therefore, in order for the IBF signature to
function
[
IBF
_other]
. Therefore, in order for the
[
IBF
_other]
signature to
match the required signature in module abstract_seq_RTA, we
wrap the IBF function in a function that accepts, but simply
wrap the
[
IBF
_other]
function in a function that accepts, but simply
ignores the task. *)
Corollary
instantiated_task_interference_is_bounded
:
task_interference_is_bounded_by
...
...
@@ -590,7 +591,7 @@ Section AbstractRTAforEDFwithArrivalCurves.
by
done
.
Qed
.
End
TaskInterferenceIsBoundedByIBF
.
End
TaskInterferenceIsBoundedByIBF
_other
.
(** Finally, we show that there exists a solution for the response-time recurrence. *)
Section
SolutionOfResponseTimeReccurenceExists
.
...
...
@@ -603,7 +604,7 @@ Section AbstractRTAforEDFwithArrivalCurves.
(** Given any job j of task [tsk] that arrives exactly A units after the beginning of
the busy interval, the bound of the total interference incurred by j within an
interval of length Δ is equal to [task_rbf (A + ε) - task_cost tsk + IBF(A, Δ)]. *)
interval of length Δ is equal to [task_rbf (A + ε) - task_cost tsk + IBF
_other
(A, Δ)]. *)
Let
total_interference_bound
tsk
(
A
Δ
:
duration
)
:=
task_rbf
(
A
+
ε
)
-
task_cost
tsk
+
IBF_other
A
Δ
.
...
...
This diff is collapsed.
Click to expand it.
results/fixed_priority/rta/bounded_pi.v
+
5
−
5
View file @
23975eed
...
...
@@ -250,7 +250,7 @@ Section AbstractRTAforFPwithArrivalCurves.
by
eapply
instantiated_busy_interval_equivalent_busy_interval
;
eauto
2
with
basic_facts
.
Qed
.
(** Next, we prove that IBF is indeed an interference bound.
(** Next, we prove that
[
IBF
_other]
is indeed an interference bound.
Recall that in module abstract_seq_RTA hypothesis task_interference_is_bounded_by expects
to receive a function that maps some task t, the relative arrival time of a job j of task t,
...
...
@@ -258,10 +258,10 @@ Section AbstractRTAforFPwithArrivalCurves.
files limited.abstract_RTA.definitions and limited.abstract_RTA.abstract_seq_rta).
However, in this module we analyze only one task -- [tsk], therefore it is “hard-coded”
inside the interference bound function IBF. Moreover, in case of a model with fixed
inside the interference bound function
[
IBF
_other]
. Moreover, in case of a model with fixed
priorities, interference that some job j incurs from higher-or-equal priority jobs does not
depend on the relative arrival time of job j. Therefore, in order for the IBF signature to
match the required signature in module abstract_seq_RTA, we wrap the IBF function in a
depend on the relative arrival time of job j. Therefore, in order for the
[
IBF
_other]
signature to
match the required signature in module abstract_seq_RTA, we wrap the
[
IBF
_other]
function in a
function that accepts, but simply ignores, the task and the relative arrival time. *)
Lemma
instantiated_task_interference_is_bounded
:
task_interference_is_bounded_by
...
...
@@ -310,7 +310,7 @@ Section AbstractRTAforFPwithArrivalCurves.
(** Given any job j of task [tsk] that arrives exactly A units after the beginning of
the busy interval, the bound of the total interference incurred by j within an
interval of length Δ is equal to [task_rbf (A + ε) - task_cost tsk + IBF Δ]. *)
interval of length Δ is equal to [task_rbf (A + ε) - task_cost tsk + IBF
_other
Δ]. *)
Let
total_interference_bound
tsk
A
Δ
:=
task_rbf
(
A
+
ε
)
-
task_cost
tsk
+
IBF_other
Δ
.
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment