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
bffcc219
Commit
bffcc219
authored
5 years ago
by
Björn Brandenburg
Browse files
Options
Downloads
Patches
Plain Diff
note two simple facts about job deadlines
parent
8e762b51
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
restructuring/behavior/facts/all.v
+1
-0
1 addition, 0 deletions
restructuring/behavior/facts/all.v
restructuring/behavior/facts/deadlines.v
+72
-0
72 additions, 0 deletions
restructuring/behavior/facts/deadlines.v
with
73 additions
and
0 deletions
restructuring/behavior/facts/all.v
+
1
−
0
View file @
bffcc219
...
...
@@ -3,3 +3,4 @@ Require Export rt.restructuring.behavior.facts.completion.
Require
Export
rt
.
restructuring
.
behavior
.
facts
.
ideal_schedule
.
Require
Export
rt
.
restructuring
.
behavior
.
facts
.
sequential
.
Require
Export
rt
.
restructuring
.
behavior
.
facts
.
arrivals
.
Require
Export
rt
.
restructuring
.
behavior
.
facts
.
deadlines
.
This diff is collapsed.
Click to expand it.
restructuring/behavior/facts/deadlines.v
0 → 100644
+
72
−
0
View file @
bffcc219
From
rt
.
restructuring
.
behavior
Require
Export
schedule
facts
.
service
facts
.
completion
.
(** In this file, we observe basic properties of the behavioral job
model w.r.t. deadlines. *)
Section
DeadlineFacts
.
(* Consider any given type of jobs with costs and deadlines... *)
Context
{
Job
:
JobType
}
`{
JobCost
Job
}
`{
JobDeadline
Job
}
.
(* ... any given type of processor states. *)
Context
{
PState
:
eqType
}
.
Context
`{
ProcessorState
Job
PState
}
.
(** We begin with schedules / processor models in which scheduled jobs
always receive service. *)
Section
IdealProgressSchedules
.
(* Consider a given reference schedule... *)
Variable
sched
:
schedule
PState
.
(* ...in which complete jobs don't execute... *)
Hypothesis
H_completed_jobs
:
completed_jobs_dont_execute
sched
.
(* ...and scheduled jobs always receive service. *)
Hypothesis
H_scheduled_implies_serviced
:
ideal_progress_proc_model
.
(* We observe that, if a job is known to meet its deadline, then
its deadline must be later than any point at which it is
scheduled. That is, if a job that meets its deadline is
scheduled at time t, we may conclude that its deadline is at a
time later than t. *)
Lemma
scheduled_at_implies_later_deadline
:
forall
j
t
,
job_meets_deadline
sched
j
->
scheduled_at
sched
j
t
->
t
<
job_deadline
j
.
Proof
.
move
=>
j
t
.
rewrite
/
job_meets_deadline
=>
COMP
SCHED
.
case
:
(
boolP
(
t
<
job_deadline
j
))
=>
//.
rewrite
-
leqNgt
=>
AFTER_DL
.
apply
completion_monotonic
with
(
t'
:=
t
)
in
COMP
=>
//.
apply
scheduled_implies_not_completed
in
SCHED
=>
//.
move
/
negP
in
SCHED
.
contradiction
.
Qed
.
End
IdealProgressSchedules
.
(** In the following section, we observe that it is sufficient to
establish that service is invariant across two schedules at a
job's deadline to establish that it either meets its deadline in
both schedules or none. *)
Section
EqualProgress
.
(* Consider any two schedules [sched] and [sched']. *)
Variable
sched
sched'
:
schedule
PState
.
(* We observe that, if the service is invariant at the time of a
job's absolute deadline, and if the job meets its deadline in one of the schedules,
then it meets its deadline also in the other schedule. *)
Lemma
service_invariant_implies_deadline_met
:
forall
j
,
service
sched
j
(
job_deadline
j
)
=
service
sched'
j
(
job_deadline
j
)
->
(
job_meets_deadline
sched
j
<->
job_meets_deadline
sched'
j
)
.
Proof
.
move
=>
j
SERVICE
.
split
;
by
rewrite
/
job_meets_deadline
/
completed_by
-
SERVICE
.
Qed
.
End
EqualProgress
.
End
DeadlineFacts
.
\ No newline at end of file
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