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
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
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
Lasse Blaauwbroek
PROSA - Formally Proven Schedulability Analysis
Commits
331a6359
Commit
331a6359
authored
9 years ago
by
Felipe Cerqueira
Browse files
Options
Downloads
Patches
Plain Diff
Add proof of job interference without parallelism
parent
0582d634
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
interference.v
+44
-5
44 additions, 5 deletions
interference.v
with
44 additions
and
5 deletions
interference.v
+
44
−
5
View file @
331a6359
...
...
@@ -167,7 +167,9 @@ Module Interference.
End
BasicLemmas
.
Section
EquivalenceTaskInterference
.
(* If we assume no intra-task parallelism, the two definitions
of interference are the same. *)
Section
EquivalenceWithPerJobInterference
.
Hypothesis
H_no_intratask_parallelism
:
jobs_of_same_task_dont_execute_in_parallel
job_task
sched
.
...
...
@@ -196,9 +198,9 @@ Module Interference.
first
by
rewrite
big_const_seq
iter_addn
mul0n
addn0
addn0
.
intros
j1
_;
desf
;
[
rewrite
andTb
|
by
done
]
.
apply
/
eqP
;
rewrite
eqb0
;
apply
/
negP
;
unfold
not
;
intro
SCHEDULED'
.
exploit
(
H_no_intratask_parallelism
j0
j1
t
)
.
apply
(
H_no_intratask_parallelism
j0
j1
t
);
try
(
by
done
)
.
by
move
:
Heq0
=>
/
eqP
Heq0
;
rewrite
Heq
0
.
exploit
(
H_no_intratask_parallelism
j0
j1
t
)
;
try
(
by
done
)
.
by
move
:
Heq0
=>
/
eqP
EQtsk
;
rewrite
EQtsk
.
by
intros
EQj
;
rewrite
EQj
eq_refl
in
Heq
.
}
{
rewrite
mem_undup
.
...
...
@@ -228,7 +230,44 @@ Module Interference.
}
Qed
.
End
EquivalenceTaskInterference
.
End
EquivalenceWithPerJobInterference
.
(* If we don't assume intra-task parallelism, the per-job interference
bounds the actual interference. *)
Section
BoundUsingPerJobInterference
.
Lemma
interference_le_interference_joblist
:
forall
tsk
t1
t2
,
task_interference
tsk
t1
t2
<=
task_interference_joblist
tsk
t1
t2
.
Proof
.
intros
tsk
t1
t2
;
unfold
task_interference
,
task_interference_joblist
,
job_interference
.
rewrite
[
\
sum_
(
j
<-
jobs_scheduled_between
_
_
_
|
_)
_]
exchange_big
/=.
rewrite
big_nat_cond
[
\
sum_
(_
<=
_
<
_
|
true
)_]
big_nat_cond
.
apply
leq_sum
;
intro
t
;
rewrite
andbT
;
intro
LT
.
destruct
(
job_is_backlogged
t
&&
task_is_scheduled
tsk
t
)
eqn
:
BACK
;
last
by
done
.
move
:
BACK
=>
/
andP
[
BACK
SCHED
]
.
move
:
SCHED
=>
/
existsP
SCHED
;
destruct
SCHED
as
[
x
IN
];
move
:
IN
=>
/
andP
[
IN
SCHED
]
.
unfold
schedules_job_of_tsk
in
SCHED
;
desf
.
rename
SCHED
into
EQtsk0
,
Heq
into
SCHED
;
move
:
EQtsk0
=>
/
eqP
EQtsk0
.
rewrite
big_mkcond
(
bigD1_seq
j0
)
/=
;
last
by
rewrite
undup_uniq
.
{
rewrite
-
addn1
addnC
;
apply
leq_add
;
last
by
done
.
rewrite
EQtsk0
eq_refl
BACK
andTb
.
apply
eq_leq
;
symmetry
;
apply
/
eqP
;
rewrite
eqb1
.
by
apply
/
exists_inP
;
exists
x
;
[
by
done
|
by
rewrite
SCHED
]
.
}
{
unfold
jobs_scheduled_between
.
rewrite
mem_undup
.
apply
mem_bigcat_nat
with
(
j
:=
t
);
first
by
done
.
unfold
jobs_scheduled_at
.
apply
mem_bigcat_ord
with
(
j
:=
x
);
first
by
apply
ltn_ord
.
by
unfold
make_sequence
;
rewrite
SCHED
mem_seq1
eq_refl
.
}
Qed
.
End
BoundUsingPerJobInterference
.
Section
CorrespondenceWithService
.
...
...
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