Download presentation
Presentation is loading. Please wait.
Published byDouglas Bridges Modified over 9 years ago
1
CSCI1600: Embedded and Real Time Software Lecture 24: Real Time Scheduling II Steven Reiss, Fall 2015
2
Rate Monotonic Scheduling Consider (8,4), (10,2), (12,3) Utilization = 0.5 + 0.2 + 0.25 = 0.95 RM fails: (WHY)
3
Dynamic Priority Scheduling Priorities are changed dynamically for different tasks Otherwise same simplifying assumptions Approaches to assigning priorities Basic idea: give priority to the job that needs it the most Least laxity (least slack) first Earliest deadline first
4
Least Laxity First Laxity = time until deadline – compute time remaining This is a measure of how stressed we are to finish the job Small laxity implies high priority
5
Least Laxity Scheduling (8,4), (10,2), (12,3) 0 :Laxity = 4, 8, 9 1 : Laxity = 4, 7, 8 2 : Laxity = 4, 6, 7 3 : Laxity = 4, 5, 6 4 : Laxity = X, 4, 5 5 : Laxity = X, 4, 4 6 : Laxity = X, X, 3 7 : Laxity = X, X, 3 8 : Laxity = 4, X, 3 9 : Laxity = 4, X, X 10 : Laxity = 4, 8, X 11 : Laxity = 4, 7, X 12 : Laxity = X, 7, 9 …
6
Least Laxity First Is optimal Can schedule as long as utility is <= 1 Is complex When do priorities change The laxity of a task changes dynamically If it is not currently executing How would you implement this Generally not used Too much context switching, bookkeeping Can we approximate it?
7
Earliest Deadline First EDF: Put tasks in priority queue based on actual deadline (time when job needs to be done) Priorities change only when a job is added EDF is also optimal If the utility is <= 1 then EDF will create a schedule Can transform any feasible schedule into an EDF one But this is based on assumptions Perfect periodic tasks, zero overhead, independence
8
Earliest Deadline First Scheduling (8,4), (10,2), (12,3) 0 : [8,10,12] 8 : [ 10, 12, 16] 10 : [ 12, 16, 20 ]
9
EDF Scheduling P1(4,1), P2(6,3), P3(10,3) Why is this sufficient?
10
EDF and LLF Seem Ideal Easy to implement, optimal, … But only in an ideal world If the workload is briefly unschedulable Then both fail dramatically and unpredictably Choices are based on deadlines, not importance Work hard to display MPG rather than firing airbag Work only with idealized situations We need to relax the simplifying conditions Sporadic and aperiodic tasks
11
Handling Overloads Why bother Tasks might take longer than expected Sporadic tasks (interrupts, etc) Might be unavoidable In EDF if one job is late and the system is loaded Then ALL future jobs might be late Techniques What might you want to do?
12
Techniques for Handling Overload Techniques Schedule late jobs at lower priority than on-time jobs Change non-critical jobs to optional when late jobs occur Discard jobs that cannot complete Tradeoffs What are the effects of each of these What might you use in practice Depends on application
13
Relaxing Constraints Nonpreemptability Compute maximum time a task might be nonpreemptible Compute maximum time a task might be delayed by a nonpreemptible task Only need to consider tasks of lower priority Add this to its execution time when deriving schedule
14
Resource Contention Recall what can happen with locks and priorities
15
Priority Protocols τ 2 τ 3 t0t+3 t+253 RL L L R R L τ 1 t+254 L L L... L Blocked! t+2
16
Fixing Priority Inversions Make critical sections non-preemptible
17
Priority Ceiling Protocol Immediate Priority Ceiling Protocol Assign priorities based on resources Associate a priority ceiling p with each resource r The highest priority task that can lock it No task with priority >= p is allowed to lock r Task acquiring r runs at priority p Original Priority Ceiling Protocol Task’s priority is raised when a higher-priority task tries to acquire the lock Raised to priority ceiling of the resource Task can acquire a lock r only if the task’s priority is strictly higher than the priority ceilings of all locks currently held by other tasks
18
Priority Inheritance Protocol Priority inheritance protocol If Ti blocks Tk, execute Tk with priority min(j,k) Which should you use?
19
Priority Protocols τ 2 τ 3 t0t+3 t+253 RL L L R R L τ 1 t+254 L L L... L Blocked! t+2
20
Handling Self-Suspension Wait for I/O operations, etc Split into two tasks Second task might have a shorter deadline Take the suspension time into account when computing schedule
21
Handling Context Switching Time Compute the max # of context switches for a task From its period and higher priority tasks Worst case Add the context switching time * max To the execution time of the task
22
Sporadic Tasks Sporadic tasks Arise occassionally Hard deadlines Question: how to schedule these How to accommodate in RM/DM or EDF schedules Goal Tell accept/reject when job is submitted
23
Sporadic Jobs and EDF Schedules EDF will find a schedule as long as U <= 1 Keep track of U for the current system Utilization of the periodic tasks Plus the U for all accepted sporadic tasks Compute U’ as current U plus U of the sporadic task If this is <= 1 then accept Otherwise reject
24
Sporadic Jobs and RM Schedules What guarantees can we make here? U <= x where x depends on the number of tasks This would allow us to use the same approach
25
Aperiodic Job Scheduling Aperiodic Tasks Arise occassionally Soft deadlines Might be prioritized Goal: minimize worst/average case performance
26
Simple Aperiodic Scheduling Run aperiodic tasks in open slots How to schedule them Round robin Prioritized round robin Run tasks with higher priorities first Allocate CPU time according to priority This gives no guarantees of performance And complicates the scheduler
27
Total Bandwidth Server Make an aperiodic job look like a sporadic one Add to schedule using standard algorithm (e.g. EDF) Can reject the sporadic job if necessary Key: set the parameters for the job so that The result is schedulable (total U <= 1) Recall U = e/D e is known and fixed for the job This lets us vary D to accommodate the jobs
28
Total Bandwidth Server Determine desired aperiodic load U s To still allow sporadic jobs and periodic jobs Total U <= 1 TBS is configured with budget Q s and period T s Q s /T s = U s Terminology e s : budget for the server (its execution time) e q : execution time of job at the head of the queue u s : size of the server (max utilization)
29
Total Bandwidth Server Initially e s = 0 and d = 0 When a new job with execution time e comes into an empty queue Set d = max(d,t) + e/u s Set e s = e When the server completes the current job, remove the job from the queue If there are more jobs, Set the server deadline to d+e q /u s and e s = e q
30
Example Periodic: P1(4,1), P2(6,3) Aperiodic: A3: e=2 at time 1, A4: e= 1 at time 2 First determine U s U p = ¼ + 3/6 = 0.75 U s = 0.25 (could be less)
31
Example At Start P1(4,1), P2(6,3), e s = 0, d = 0 At time 1: d = max(0,1) + 2 / 0.25 = 9, e s = 2 P1 P2 P3
32
Example P1(4,1), P2(6,3), P s (9,2) At time 3: new aperiodic job P t, but P s not done At time 7: P s finishes, P2 has deadline 12 P1 P2 P3
33
Example At time 7: d = d + e q /U s = 9 + 1/0.25 = 13, e s = 1 P s (13,1) P1 P2 P3
34
Example At time 7: d = d + e q /U s = 9 + 1/0.25 = 13, e s = 1 P s (13,1) P1 and P2 have deadlines of 12 P1 P2 P3
35
Total Bandwidth Server Guarantees Can always complete the job at the top of the queue A given budget of time that is replenished each cycle TBS is “work-conserving” TBS will run in any slack from periodic tasks In any interval L, a TBS will not take more the U s L CPU time from the “real” task requests TBS will use idle run time
36
Alternatives to TBS Constant bandwidth server
37
Homework Read 12.5
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.