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

Slides:



Advertisements
Similar presentations
Washington WASHINGTON UNIVERSITY IN ST LOUIS Real-Time: Periodic Tasks Fred Kuhns Applied Research Laboratory Computer Science Washington University.
Advertisements

Real Time Scheduling.
Chapter 7 - Resource Access Protocols (Critical Sections) Protocols: No Preemptions During Critical Sections Once a job enters a critical section, it cannot.
Priority Inheritance and Priority Ceiling Protocols
Introduction to Embedded Systems Resource Management - III Lecture 19.
Priority INHERITANCE PROTOCOLS
1 EE5900 Advanced Embedded System For Smart Infrastructure RMS and EDF Scheduling.
CSE 522 Real-Time Scheduling (4)
Tasks Periodic The period is the amount of time between each iteration of a regularly repeated task Time driven The task is automatically activated by.
Module 2 Priority Driven Scheduling of Periodic Task
Operating Systems1 5. Process and thread scheduling 5.1 Organization of Schedulers – Embedded and Autonomous Schedulers 5.2 Scheduling Methods – A Framework.
Chapter 6 Dynamic Priority Servers
CS 3013 & CS 502 Summer 2006 Scheduling1 The art and science of allocating the CPU and other resources to processes.
Chapter 6: CPU Scheduling. 5.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 2, 2005 Chapter 6: CPU Scheduling Basic.
CSE 421 Algorithms Richard Anderson Lecture 6 Greedy Algorithms.
Wk 2 – Scheduling 1 CS502 Spring 2006 Scheduling The art and science of allocating the CPU and other resources to processes.
By Group: Ghassan Abdo Rayyashi Anas to’meh Supervised by Dr. Lo’ai Tawalbeh.
Spring 2002Real-Time Systems (Shin) Rate Monotonic Analysis Assumptions – A1. No nonpreemptible parts in a task, and negligible preemption cost –
Real-Time Operating System Chapter – 8 Embedded System: An integrated approach.
More Scheduling cs550 Operating Systems David Monismith.
Module 2 Clock-Driven Scheduling
CprE 458/558: Real-Time Systems (G. Manimaran)1 CprE 458/558: Real-Time Systems Combined Scheduling of Periodic and Aperiodic Tasks.
MM Process Management Karrie Karahalios Spring 2007 (based off slides created by Brian Bailey)
Real-Time Scheduling CS4730 Fall 2010 Dr. José M. Garrido Department of Computer Science and Information Systems Kennesaw State University.
Scheduling policies for real- time embedded systems.
Real Time Scheduling Telvis Calhoun CSc Outline Introduction Real-Time Scheduling Overview Tasks, Jobs and Schedules Rate/Deadline Monotonic Deferrable.
Real-Time Scheduling CS4730 Fall 2010 Dr. José M. Garrido Department of Computer Science and Information Systems Kennesaw State University.
CompSci 143A1 5. Process and thread scheduling 5.1 Organization of Schedulers – Embedded and Autonomous Schedulers – Priority Scheduling 5.2 Scheduling.
CprE 458/558: Real-Time Systems (G. Manimaran)1 CprE 458/558: Real-Time Systems RMS and EDF Schedulers.
Special Class on Real-Time Systems
1 Real-Time Scheduling. 2Today Operating System task scheduling –Traditional (non-real-time) scheduling –Real-time scheduling.
Introduction to Embedded Systems Rabie A. Ramadan 5.
CSCI1600: Embedded and Real Time Software Lecture 23: Real Time Scheduling I Steven Reiss, Fall 2015.
Dynamic Priority Driven Scheduling of Periodic Task
Sandtids systemer 2.modul el. Henriks 1. forsøg m. Power Point.
Undergraduate course on Real-time Systems Linköping University TDDD07 Real-time Systems Lecture 2: Scheduling II Simin Nadjm-Tehrani Real-time Systems.
Chapter 4 CPU Scheduling. 2 Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling Algorithm Evaluation.
 In a single-processor system, only one process can run at a time; any others must wait until the CPU is free and can be rescheduled.  The objective.
Lecture 6: Real-Time Scheduling
Distributed Process Scheduling- Real Time Scheduling Csc8320(Fall 2013)
Real-Time Operating Systems RTOS For Embedded systems.
Embedded System Scheduling
REAL-TIME OPERATING SYSTEMS
EMERALDS Landon Cox March 22, 2017.
EEE Embedded Systems Design Process in Operating Systems 서강대학교 전자공학과
Wayne Wolf Dept. of EE Princeton University
Unit OS9: Real-Time and Embedded Systems
EEE 6494 Embedded Systems Design
Lecture 4 Schedulability and Tasks
Lecture 24: Process Scheduling Examples and for Real-time Systems
Realtime System Fundamentals : Scheduling and Priority-based scheduling B. Ramamurthy cse321-fall2014 9/20/2018.
Chapter 6: CPU Scheduling
Module 5: CPU Scheduling
Chapter 6 Dynamic Priority Servers
Realtime System Fundamentals : Scheduling and Priority-based scheduling B. Ramamurthy cse321-fall /27/2018.
Chapter5: CPU Scheduling
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
Chapter 6: CPU Scheduling
CSCI1600: Embedded and Real Time Software
Processes and operating systems
Operating System , Fall 2000 EA101 W 9:00-10:00 F 9:00-11:00
Chapter 6: CPU Scheduling
Ch.7 Scheduling Aperiodic and Sporadic Jobs in Priority-Driven Systems
Module 5: CPU Scheduling
Real-Time Process Scheduling Concepts, Design and Implementations
Chapter 6: CPU Scheduling
Chapter 6: CPU Scheduling
Real-Time Process Scheduling Concepts, Design and Implementations
Module 5: CPU Scheduling
Presentation transcript:

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

Rate Monotonic Scheduling  Consider (8,4), (10,2), (12,3)  Utilization = = 0.95  RM fails: (WHY)

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

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

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 …

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?

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

Earliest Deadline First Scheduling  (8,4), (10,2), (12,3)  0 : [8,10,12]  8 : [ 10, 12, 16]  10 : [ 12, 16, 20 ]

EDF Scheduling  P1(4,1), P2(6,3), P3(10,3) Why is this sufficient?

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

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?

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

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

Resource Contention  Recall what can happen with locks and priorities

Priority Protocols τ 2 τ 3 t0t+3 t+253 RL L L R R L τ 1 t+254 L L L... L Blocked! t+2

Fixing Priority Inversions  Make critical sections non-preemptible

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

Priority Inheritance Protocol  Priority inheritance protocol  If Ti blocks Tk, execute Tk with priority min(j,k)  Which should you use?

Priority Protocols τ 2 τ 3 t0t+3 t+253 RL L L R R L τ 1 t+254 L L L... L Blocked! t+2

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

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

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

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

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

Aperiodic Job Scheduling  Aperiodic Tasks  Arise occassionally  Soft deadlines  Might be prioritized  Goal: minimize worst/average case performance

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

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

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)

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

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)

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

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

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

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

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

Alternatives to TBS  Constant bandwidth server

Homework  Read 12.5