clock driven scheduling in depth
play

Clock-Driven Scheduling (in-depth) Pre-compute static schedule - PDF document

CPSC-663: Real-Time Systems Clock-Driven Scheduling Clock-Driven Scheduling (in-depth) Pre-compute static schedule off-line (e.g. at design time): Task Scheduler: i := 0; k := 0; can afford expensive <set timer to expire at time t 0


  1. CPSC-663: Real-Time Systems Clock-Driven Scheduling Clock-Driven Scheduling (in-depth) • Pre-compute static schedule off-line (e.g. at design time): Task Scheduler: i := 0; k := 0; can afford expensive <set timer to expire at time t 0 > algorithms. BEGIN LOOP • Idle times can be used for <wait for timer interrupt> aperiodic jobs. i := i+1; • Possible implementation: k:= i mod N; <set timer to expire at time Table-driven (i DIV N)*H + t k > • Scheduling table has entries IF J(t k-1 )is empty of type (t k , J(t k )) , where THEN wakeup (aperiodic) t k : decision time ELSE wakeup (J(t k-1 )) END LOOP J(t k ) : job to start at time t k END Scheduler; • Input: Schedule (t k , J(t k )) k = 0,1,…, N -1 Cyclic Schedules: General Structure • Scheduling decision is made periodically: Frame f • Scheduling decision is made periodically: decision points – choose which job to execute – perform monitoring and enforcement operations • Major Cycle: Frames in a hyperperiod. major cycle hyperperiod H 1

  2. CPSC-663: Real-Time Systems Clock-Driven Scheduling Frame Size Constraints • Frames must be sufficiently long so that every job can start and complete within a single frame: ( 1 ) f � max( e ) i • The hyperperiod must have an integer number of frames: ( 2 ) f H ( f " divides " H ) • For monitoring purposes, frames must be sufficiently small that between release time and deadline of every job there is at least one frame: t’ t’+D i t’+p i t t+f t+2f t+3f 2 f ( t ' t ) D � � � i t ' t gcd( p , f ) � � i ( 3 ) 2 f gcd( p , f ) D � � i i Frame Sizes: Example • Task set: p i e i D i T ( 15 , 1 , 14 ) = 1 T ( 20 , 2 , 26 ) H 660 = = 2 T ( 22 , 3 , 22 ) = 3 ( 1 ) i : f e f 3 � � � � i ( 2 ) f H f 2 , 3 , 4 , 5 , 6 , 10 ,.. � = ( 3 ) i : 2 f gcd( pi , f ) Di f 2 , 3 , 4 , 5 , 6 � � � � = possible values for f : 3 , 4 , 5 , 6 � 2

  3. CPSC-663: Real-Time Systems Clock-Driven Scheduling Slicing and Scheduling Blocks p i e i D i • Slicing T ( 4 , 1 , 4 ) = 1 ( 1 ) f 5 � � � T ( 5 , 2 , 5 ) ?! = � 2 ( 3 ) f 4 � � � T ( 20 , 5 , 20 ) = 3 T ( 4 , 1 , 4 ) = slice 1 T 3 T ( 5 , 2 , 5 ) = 2 ( 1 ) f 3 � � � T ( 20 , 1 , 20 ) f 4 = = � 31 ( 3 ) f 4 � � � T ( 20 , 3 , 20 ) = 32 T ( 20 , 1 , 20 ) = 33 scheduling block ….. 1 2 31 1 2 1 32 1 2 1 2 33 4 8 12 16 20 0 H Cyclic Executive Input: Stored schedule: L(k) for k = 0,1,…,F-1; Aperiodic job queue. TASK CYCLIC_EXECUTIVE: t = 0; /* current time */ k = 0; /* current frame */ CurrentBlock := empty; BEGIN LOOP IF <any slice in CurrentBlock is not completed> take action; CurrentBlock := L(k); k := k+1 mod F; t := t+1; set timer to expire at time tF; IF <any slice in CurrentBlock is not released> take action; wake up periodic task server to handle slices in CurrentBlock; sleep until periodic task server completes or timer expires; IF <timer expired> CONTINUE; WHILE <the aperiodic job queue is not empty> wake up the first job in the queue; sleep until the aperiodic job completes; remove the just completed job from the queue; END WHILE ; sleep until next clock interrupt; END LOOP; END CYCLIC_EXECUTIVE; 3

  4. CPSC-663: Real-Time Systems Clock-Driven Scheduling What About Aperiodic Jobs? • Typically: – Scheduled in the background. – Their execution may be delayed. • But: – Aperiodic jobs are typically results of external events. • Therefore: – The sooner the completion time, the more responsive the system – Minimizing response time of aperiodic jobs becomes a design issue. • Approach: – Execute aperiodic jobs ahead of periodic jobs whenever possible. – This is called Slack Stealing. Slack Stealing (Lehoczky et al. , RTSS’87) x k Amount of time allocated to slices executed during frame F k . s k Slack during frame F k : s k := f - x k . • The cyclic executive can execute aperiodic jobs for s k amount of time without causing jobs to miss deadlines. • Example: 0 4 8 12 16 20 1.5 0.5 2.0 4 9.5 10.5 4

  5. CPSC-663: Real-Time Systems Clock-Driven Scheduling Sporadic Jobs • Reminder: Sporadic jobs have hard deadlines; the release time and the execution time are not known a priori . Worst-case execution time known when job is released. • Need acceptance test: J(d,e) d s c s c+1 s l F c-1 F c F c+1 F l F l+1 l : Total amount of slack in Frames F c , …, F l . S ( c , l ) s � = i i c = • Acceptance Test: IF S(c,l) < e THEN reject job; ELSE how?! accept job; schedule execution; END ; Scheduling of Accepted Jobs • Static scheduling: – Schedule as large a slice of the accepted job as possible in the current frame. – Schedule remaining portions as late as possible. • Mechanism: – Append slices of accepted job to list of periodic-task slices in frames where they are scheduled. • Problem: Early commit. • Alternatives: – Rescheduling upon arrival. – Priority-driven scheduling of sporadic jobs. 5

  6. CPSC-663: Real-Time Systems Clock-Driven Scheduling EDF-Scheduling of Accepted Jobs T 1 T 2 periodic T 3 tasks ... T N acceptance test priority processor queue reject aperiodic Acceptance Test for EDF-Scheduled Sporadic Jobs • Sporadic Job J with deadline d arrives: • Test 1: Test whether current amount of slack before d is enough to accommodate J . (*) If not, reject! • Test 2: Test whether sporadic jobs still in system with deadlines after d will miss deadline if J is accepted. (**) If yes, reject! • Accept! • (*) Define S(J i ) : Amount of slack up to time d i after J i has been scheduled. • (**) Update all S(J i ) with d i > d , that is, 6

  7. CPSC-663: Real-Time Systems Clock-Driven Scheduling Accept. Test for EDF Spor. Jobs (Implementation) • Define S i,k : slack in Frames F i , ..., F k • Precompute all S i,k in first major cycle • Initial amounts of slack in later cycles can be computed as S i+jF,k+j’F = S i,F + S 1,k + (j’-j)S 1,F • Compute current slack of job with release time in F c-1 and deadline in F l+1 : S new c,l = S c,l – S (dk<d) e k (c) • Implementation: – Initially compute S c,l for newly arriving job. If negative, reject. – Whenever job with earlier deadline arrives, decrease this value. If negative, reject new job. Static Scheduling of Jobs in Frames • Layout of task schedule for cyclic executive can be formulated as a schedule for jobs in a hyperperiod. • This can be formulated as a network fl flow problem. J 1 F 1 J 2 F 2 ... ... F j J i e i f Source Sink ... ... J n-1 F m-1 F m J n 7

  8. CPSC-663: Real-Time Systems Clock-Driven Scheduling Pros and Cons of Clock-Driven Scheduling • Pros: – Conceptual simplicity – Timing constraints can be checked and enforced at frame boundaries. – Preemption cost can be kept small by having appropriate frame sizes. – Easy to validate: Execution times of slices known a priori . • Cons: – Difficult to maintain. – Does not allow to integrate hard and soft deadlines. Putting the Cyclic Executive into Practice T. P. Baker, Alan Shaw, “The Cyclic Executive Model and Ada” • Implementation approaches for a Cyclic Executive: Solutions and Difficulties – Naive solution using the DELAY statement – Using an interrupt from a hardware clock – Dealing with lost or buffered interrupts – Handling frame overruns 8

  9. CPSC-663: Real-Time Systems Clock-Driven Scheduling Naive Solution Using the DELAY Statement Source: T. P. Baker, Alan Shaw, “The Cyclic Executive Model and Ada” Using an Interrupt from a Hardware Clock Source: T. P. Baker, Alan Shaw, “The Cyclic Executive Model and Ada” 9

  10. CPSC-663: Real-Time Systems Clock-Driven Scheduling Dealing with Lost or Buffered Interrupts Source: T. P. Baker, Alan Shaw, “The Cyclic Executive Model and Ada” Handling Frame Overruns (I) ABORTION: Source: T. P. Baker, Alan Shaw, “The Cyclic Executive Model and Ada” 10

  11. CPSC-663: Real-Time Systems Clock-Driven Scheduling Handling Frame Overruns (II) EXCEPTIONS: Source: T. P. Baker, Alan Shaw, “The Cyclic Executive Model and Ada” 11

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend