Multiprocessor Real-Time Scheduling
Multiprocessor Real-Time Scheduling
Real-Time Scheduling
Embedded System Software Design
Use under the permission of Prof. Ya-
Shu Chen (NTUST)
Outline
• Multiprocessor Real-Time Scheduling
• Global Scheduling
• Partitioned Scheduling
• Semi-partitioned Scheduling
Multiprocessor Models
• Identical (Homogeneous): All the processors have the same
characteristics, i.e., the execution time of a job is
independent on the processor it is executed.
• Uniform: Each processor has its own speed, i.e., the
execution time of a job on a processor is proportional to the
speed of the processor.
– A faster processor always executes a job faster than slow
processors do.
– For example, multiprocessors with the same instruction set but
with different supply voltages/frequencies.
• Unrelated (Heterogeneous): Each job has its own execution
time on a specified processor
– A job might be executed faster on a processor, but other jobs
might be slower on that processor.
– For example, multiprocessors with different instruction sets.
Scheduling Models
• Global Scheduling:
– A job may execute on any processor.
– The system maintains a global ready queue.
– Execute the M highest-priority jobs in the ready queue, where M
is the number of processors.
– It requires high on-line overhead.
• Partitioned Scheduling:
– Each task is assigned on a dedicated processor.
– Schedulability is done individually on each processor.
– It requires no additional on-line overhead.
• Semi-partitioned Scheduling:
– Adopt task partitioning first and reserve time slots (bandwidths)
for tasks that allow migration.
– It requires some on-line overhead.
Scheduling Models
Semi-partitioned
Global Scheduling Partitioned Scheduling Scheduling
7
9 8 7 3 7 7
Waiting Queue
4 6 5 4 6 5
6 4 5
1 2 3 1 2 3
2 3
T1 10 10 5 0.5
T2 10 10 5 0.5
T3 12 12 8 0.67
• T3 is not schedulable
Schedulability Test
• A set of periodic tasks t1, t2, . . . , tN with
implicit deadlines is schedulable on M
processors by using preemptive Global EDF
scheduling if
If all the tasks have an utilization factor C/T under a value α, where
m is the number of processors
m +1
EDF − FF
U wc (m, ) =
+ 1 where = 1/
Demand Bound Function
• Define demand bound function as
If a task ti is split, the task can A processor can host two split
be served only within these two tasks, ti and tj. ti is served at
pre-defined time slots with length the beginning of the time slot,
xi and yi . and tj is served at the end.
The schedule is EDF, but if a split task instance is in the ready queue, it is
executed in the reserved time region.
Semi-partitioned EDF
• We can assign all the tasks ti with Ui > SEP on a dedicated
processor. So, we only consider tasks with Ui no larger SEP.