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
0fbee8da
Commit
0fbee8da
authored
5 years ago
by
Björn Brandenburg
Browse files
Options
Downloads
Patches
Plain Diff
fix definition change fallout in swap analysis
parent
34c14244
No related branches found
Branches containing commit
No related tags found
Tags containing commit
1 merge request
!39
General readiness, take two
Pipeline
#19373
passed with warnings
5 years ago
Changes
1
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
restructuring/analysis/transform/facts/swaps.v
+23
-7
23 additions, 7 deletions
restructuring/analysis/transform/facts/swaps.v
with
23 additions
and
7 deletions
restructuring/analysis/transform/facts/swaps.v
+
23
−
7
View file @
0fbee8da
...
...
@@ -234,7 +234,7 @@ Section SwappedFacts.
by
apply
ltnW
.
Qed
.
(*
We further
observe that, *after* t2, the swapped schedule again does not
(*
Likewise, we
observe that, *after* t2, the swapped schedule again does not
differ with regard to the service received by any job. *)
Lemma
service_after_swap_invariant
:
forall
t
,
...
...
@@ -299,11 +299,11 @@ Section SwappedScheduleProperties.
[t1] and [t2] have been swapped. *)
Let
sched'
:=
swapped
sched
t1
t2
.
(* First, we observe that if
completed jobs don't execute in
th
e
original schedule
, then that's still the case after the swap. *)
Lemma
swapped_
completed_jobs_dont_execute
:
completed_jobs_dont_execute
sched
->
completed_jobs_dont_execute
sched'
.
(* First, we observe that if
jobs never accomulate more service
th
an
required
, then that's still the case after the swap. *)
Lemma
swapped_
service_bound
:
(
forall
j
t
,
service
sched
j
t
<=
job_cost
j
)
->
(
forall
j
t
,
service
sched'
j
t
<=
job_cost
j
)
.
Proof
.
move
=>
COMP
.
rewrite
/
completed_jobs_dont_execute
=>
j
t
.
...
...
@@ -325,6 +325,22 @@ Section SwappedScheduleProperties.
}
Qed
.
(* From the above service bound, we conclude that, if if completed jobs don't
execute in the original schedule, then that's still the case after the
swap, assuming an ideal unit-service model (i.e., scheduled jobs receive
exactly one unit of service). *)
Lemma
swapped_completed_jobs_dont_execute
:
unit_service_proc_model
->
ideal_progress_proc_model
->
completed_jobs_dont_execute
sched
->
completed_jobs_dont_execute
sched'
.
Proof
.
move
=>
UNIT
IDEAL
COMP
.
apply
ideal_progress_completed_jobs
=>
//.
apply
swapped_service_bound
.
by
move
=>
j
;
apply
service_at_most_cost
.
Qed
.
(* Suppose all jobs in the original schedule come from some arrival sequence... *)
Variable
arr_seq
:
arrival_sequence
Job
.
Hypothesis
H_from_arr_seq
:
jobs_come_from_arrival_sequence
sched
arr_seq
.
...
...
@@ -344,7 +360,7 @@ End SwappedScheduleProperties.
when the job moved earlier has an earlier deadline than the job
being moved to a later allocation, assuming that the former has
not yet missed its deadline, which is the core transformation of
the classic EDF optimality proof. *)
the classic EDF optimality proof. *)
Section
EDFSwap
.
(* For any given type of jobs with costs and deadlines... *)
Context
{
Job
:
JobType
}
`{
JobCost
Job
}
`{
JobDeadline
Job
}
.
...
...
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