CPSC-663: Real-Time Systems Common Scheduling Approaches
CPSC-663: Real-Time Systems Common Scheduling Approaches
Scheduling decision time in clock-driven schedulers is defined a priori. For example: Scheduler periodically wakes up and generates a portion of the schedule.
scheduler job
A B
Special case: When job parameters are known a priori, schedule can be precomputed off-line, and stored as a table (table-driven schedulers).
Priority-Driven -- Overview
Basic rule: Never leave processor idle when there is work to be done. (such schedulers are also called work conserving) Based on list-driven, greedy scheduling. Examples: FIFO, LIFO, SET, LET, EDF. Possible implementation of preemptive priority-driven scheduling: Assign priorities to jobs. Scheduling decisions are made when Job becomes ready Processor becomes idle Priorities of jobs change At each scheduling decision time, chose ready task with highest priority. In non-preemptive case, scheduling decisions are made only when processor becomes idle.
L = ( J1 , J2 , J3 , J4 , J5 , J6 , J7 , J8 ) Proc1 Proc2
J5 J8 J1 J2 J3 J6 J4 J7
L = ( J8 , J1 , J2 , J3 , J4 , J5 , J6 , J7 )
( { := min (d , {d
Ji
}) < J })
j
Theorem:
A set of Jobs J can be feasibly scheduled on a processor if and only if it can be feasibly scheduled to meet all effective release times and deadlines.
0, 10 , 3 2, 14 , 6 4, 12 , 4
J1 J2 J3
= ( = ( = (
ri 0, 0, 0,
d i ei 4, 1 4, 1 5, 5
) ) )