Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSCI1600: Embedded and Real Time Software Lecture 24: Real Time Scheduling II Steven Reiss, Fall 2015.

Similar presentations


Presentation on theme: "CSCI1600: Embedded and Real Time Software Lecture 24: Real Time Scheduling II Steven Reiss, Fall 2015."— Presentation transcript:

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


Download ppt "CSCI1600: Embedded and Real Time Software Lecture 24: Real Time Scheduling II Steven Reiss, Fall 2015."

Similar presentations


Ads by Google