Major Commit: Suspension-aware Scheduling
1) Definition of a generic model for job suspensions based on received service (e.g., job j_1 should suspend for 4ms as soon as service reaches 5ms). 2) Definition of the dynamic suspension model (i.e., cumulative suspension of job j_1 <= X). 3) Analysis of suspension-aware scheduling by inflation of job costs (via schedule reduction). In the literature, this is called suspension-oblivious analysis. 4) Analysis of suspension-aware scheduling by adjusting job jitter (via schedule reduction). 5) Proof of (weak) sustainability of job costs under suspension-aware scheduling. We show that if we increase the costs of all jobs while reducing their suspension times in a certain way, the response times of all jobs do not decrease. This has an important implication regarding worst-case schedules: if some schedulability analysis already accounts for the fact that job suspension times can vary from 0 to the task suspension bound, then it's perfectly safe to assume that jobs execute for their WCET. 6) Proof of sustainability of the cost of a single job under suspension-aware scheduling. That is, we show that increasing the cost of a single job does not reduce its own response time. (Note that this is a very basic result that applies to many work-conserving, JLFP schedulers. We don't claim anything about the response time of other jobs.)
Showing
- implementation/global/jitter/schedule.v 1 addition, 1 deletionimplementation/global/jitter/schedule.v
- implementation/uni/basic/schedule.v 1 addition, 1 deletionimplementation/uni/basic/schedule.v
- implementation/uni/jitter/arrival_sequence.v 26 additions, 20 deletionsimplementation/uni/jitter/arrival_sequence.v
- implementation/uni/jitter/fp_rta_example.v 13 additions, 6 deletionsimplementation/uni/jitter/fp_rta_example.v
- implementation/uni/jitter/schedule.v 1 addition, 1 deletionimplementation/uni/jitter/schedule.v
- implementation/uni/susp/schedule.v 1 addition, 1 deletionimplementation/uni/susp/schedule.v
- model/arrival/basic/arrival_bounds.v 1 addition, 1 deletionmodel/arrival/basic/arrival_bounds.v
- model/arrival/basic/task_arrival.v 1 addition, 1 deletionmodel/arrival/basic/task_arrival.v
- model/arrival/jitter/arrival_bounds.v 1 addition, 1 deletionmodel/arrival/jitter/arrival_bounds.v
- model/arrival/jitter/task_arrival.v 1 addition, 1 deletionmodel/arrival/jitter/task_arrival.v
- model/schedule/uni/jitter/valid_schedule.v 66 additions, 0 deletionsmodel/schedule/uni/jitter/valid_schedule.v
- model/schedule/uni/response_time.v 34 additions, 18 deletionsmodel/schedule/uni/response_time.v
- model/schedule/uni/susp/build_suspension_table.v 264 additions, 0 deletionsmodel/schedule/uni/susp/build_suspension_table.v
- model/schedule/uni/susp/last_execution.v 47 additions, 0 deletionsmodel/schedule/uni/susp/last_execution.v
- model/schedule/uni/susp/suspension_intervals.v 63 additions, 11 deletionsmodel/schedule/uni/susp/suspension_intervals.v
- model/schedule/uni/susp/valid_schedule.v 75 additions, 0 deletionsmodel/schedule/uni/susp/valid_schedule.v
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
model/schedule/uni/jitter/valid_schedule.v
0 → 100644
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
model/schedule/uni/susp/valid_schedule.v
0 → 100644
This diff is collapsed.
Please register or sign in to comment