380 likes | 486 Views
Sandtids systemer 2.modul. el. Henriks 1. forsøg m. Power Point. Real Time Systems. Specifications -> Task Set Task Specifications Scheduling Fixed Priority Scheduling Dependent tasks Dynamic Priority Scheduling Aperiodic Tasks. Task Specifications.
E N D
Sandtids systemer 2.modul el. Henriks 1. forsøg m. Power Point
Real Time Systems • Specifications -> Task Set • Task Specifications • Scheduling • Fixed Priority Scheduling • Dependent tasks • Dynamic Priority Scheduling • Aperiodic Tasks
Task Specifications • A task is a collection of jobs J1,J2,J3,… • A job is a set of instructions to be executed • A job is specified in time by: a ready time r, a computation time c and a deadline d
Pre-emptied Scheduled S Deadline d Ready r Completed C The job life cycle Running Computation time c Time
Task Specifications • Periodic tasks • Aperiodic tasks • Sporadic tasks • Hard Real Time • Real Time • Soft Real Time • Non Real Time
T T T T r1 r2 r3 r4 Task Specifications Periodic Task Time
T1 T2 T3 r1 r2 r3 r4 Task Specifications Aperiodic Task 0 < Ti, 0 < c << T , (Ti < c) Time
T1 T2 T3 r1 r2 r3 r4 Task Specifications Sporadic Task 0 < c << Tmin < Ti Time
Task Specifications • Hard Real Time: d <= Tmin (T), (periodic,sporadic) • Real Time: d > Tmin (T), (periodic, sporadic) • Soft Real Time: C < d (periodic,aperiodic) • Non Real Time
Scheduling • For periodic and sporadic tasks: {Ti, ci}, S ci / Ti = U < 1 (stable), (U>1, unstable) • For aperiodic tasks: ri = ci / Ti, U= S ri < 1
Pre emptive Non Pre emptive Fixed Schedules Cyclic Schedules Round Robin Fixed Priorities Rate/Deadline Monotonic Dynamic Priorities Earliest Deadline First Scheduling
Fixed Schedules • Ready times need to be known a priori • Only very light run time load • Table based • Less flexible • Cyclic schedules are fixed schedules
Cyclic Schedules • All periods are multiples of dT • LCM: is the Least Common Multiple • Schedule is made for [0, dt * LCM] • If CPU is idle at dT * LCM the schedule may be reused in subsequent intervals. • Applicable both for Pre emptive and Non Pre Emptive Schedules
Task Time 1 2 3 4 5 6 Cyclic Schedules (example) • T1=2,c1=1,d1=2 • T2=3,c2=3/2,d2=3
Round Robin • Time line divided into slots dT • Tasks are granted execution time cyclically. • When a job has executed for dT or is completed CPU access is passed on. • Non pre emptive if dT is infinite. • Critical instant when grant is just passed on when job is ready along with jobs from all other tasks
Task Time Round Robin (example) • T1=2,c1=1,d1=2 • T2=3,c2=3/2,d2=3, dT=1/2 Task Test for task 2 Test for task 1 Time 1 2 3 1 2
Fixed Priorities • Tasks are assigned priorities in order t1, t2 t3, t4, t4, .. ,tN • Atask is ready if its latest job is still not completed • A task is running if it is ready and it has highest priority among ready tasks. • Both pre emptive and non preemptive
Task Task 2 missed deadline Time 1 2 3 4 5 6 Fixed priorities (example) • T1=2,c1=1,d1=2 • T2=3,c2=3/2,d2=3 , preemptive
Fixed priorities (properties) • Flexible • Medium run time demands • Not optimal • Typically better then Round Robin • Well known schedulability criteria
Fixed Priorities (schedulability) • Critical Instant Theorem (Liu,Layland) Worst case completion time is when launced along with jobs from all other tasks simultaneously. • Utilization U < N (2N-1) -> 0.7 < 1 !! • Completion time: exist t <= di : t => Si-1 [t / Tj] cj + ci
Work c1=1 T1=2 c2=3/2 Time Fixed Priorities (example) • T1=2,c1=1,d1=2 • T2=3,c2=3/2,d2=3 , preemptive 1 2 3 C2=3½ > d2=3
Priority Order • Priorities according to importance or time efficiency. • DMA: d1 < d2 < d3 < .. < dN • DMA (Deadline Monotonic) / RMA (Rate Monotonic) is optimal when d<=T / d=T • No general optimal order when d>T
Dependent tasks • Inter Process Communication (IPC) • Critical regions • Producer Consumer • Rendezvous • All introduce dependence
Running W(S) W(S) t1 t2 t3 Time W(S) S(S) Critical regions (example) Priority inversion
Priority Ceiling • Priority ceil C(S) of semaphore S is the highest (minimum) priority of all tasks locking S • Runtime: • if prio(t) < min {C(Si)| Si locked} when attempting a lock on S then lock and active. • else suspend. Task locking S inherits prio(t) (if lower) until unlock. • Whenever a semaphore is unlocked the suspend queue is inspected to see if any task may be resumed.
Priority Ceiling (assumptions and properties) • Assumption: Critical regions nicely nested. • Property: No deadlocks possible • Property: No task is blocked by lower priority tasks for more than the duration of 1 critical region.
W(S) Running W(S), suspended t1 t2 t3 Time S(S), t3 -> low prio. W(S) t3 -> prio(t1) Critical regions with PC (example)
Fixed Priorities with PC (schedulability) • Completion time: exist t <= di : t => Si-1 [t / Tj] cj + ci + Bi • Bi is the duration of the longest critical region possibly blocking taui • Lower priority tasks also block through priority inheritance
Dynamic priority scheduling • At every scheduling point considers states of every job. • Heavy run time load. • Includes fixed schedules and fixed priorities as special cases – thus stronger • Earliest Deadline First (EDF) and Least Laxity First (LLF) are special cases.
Ealiest Deadline First (EDF) • At every scheduling point runs job with closest deadline. • Optimal among all schedules. • U < 1 sufficient for d=T • No priority according to importance possible.
Task d1,1 d2,1 d1,2 d2,2 d1,3 Time 1 2 3 4 5 6 EDF (example) • T1=2,c1=1,d1=2 • T2=3,c2=3/2,d2=3 RMA/DMA missed deadline
Aperiodic tasks • Low (close to zero) minimum interarrival time Tmin • May be seen from probabilistic and worst case viewpoints • Probabilistic viewpoint uses mean inter arrival times T and queueing theory. • Worst case view uses Tmin. OK if c/Tmin < available CPU fraction. • Aperiodic server or background task
Probabilistic viewpoint (queueing) • Assumes Poisson arrivals and exponential distributed service times. (Approximation.) • l=1/T : arrival rate, u: service rate. • Load (utilization) r = l/u • Mean queue length Q = r / (1-r) • Mean waiting time W = Q/l = 1 / (u –l) (Littles theorem)
Worst case v.p. • Higher priority computation times Ki • Higher priority utilization Ui • W.C. Completion time for n jobs of taui: Cn < min{t | t > n ci + Ki + t*Ui} => Cn < (n ci + Ki) / (1-Ui) • W.C. Waiting Wn = Cn – rn < Cn - (n-1)*Tmin < n (ci / (1-Ui)–Tmin) + Ki / (1-Ui) +Tmin = (ci +Ki) / (1-Ui) for n=1
Waiting time (ci + Ki) / (1- Ui) Ci/(1-Ui) - Tmin 1 1 2 3 4 5 6 n Worst Case V.P. Ki / (1- Ui) + Tmin
Sporadic Tasks • Tmin >> c • Typically hard real time (alarm not.) d << Tmin • No queueing. • If aperiodic server T < d << Tmin (high load) • Sporadic server accesible at all times, however allways Tmin between every use. • Ticket issued at start up time. New ticket at n*Tmin if used – else old ticket left. • High responsiveness – low load.
Tickets Tmin 1 Time r1 r2 r3 r4 Sporadic Server (example)