Fixed-Priority Multiprocessor Scheduling with Liu & Layland’s Utilization Bound Nan Guan , Martin Stigge, Wang Yi Uppsala University, Sweden
Outline � Problem � Previous Results � Our New Result
Scheduling of Multi-task System � multi-rate real-time task system � each task Utilization: T i T i T i C i C i C i 1 2 3 J i J i J i 1 r i 2 3 4 r i r i r i
Liu and Layland’s Utilization Bound � Liu and Layland’s utilization bound for single-processor scheduling [ Liu1973] (the 19 th most cited paper in computer science) � : the number of tasks, � optimal
Multiprocessor Scheduling Significantly more difficult � Bin-packing problem � Hard to identify the worst-case scenario � Suffer from timing anomalies � May lead to arbitrarily low utilization
Open Problem � find a multiprocessor scheduling algorithm that can achieve Liu and Layland’s utilization bound ? number of processors
Multiprocessor Scheduling Partitioned Scheduling Global Scheduling Partitioned Scheduling w ith Task Splitting new task 4 waiting queue 2 3 4 2 2 2 2 2 3 2 5 5 8 9 5 3 7 1 6 7 1 6 4 8 1 6 cpu 2 cpu 3 cpu 2 cpu 3 cpu 2 cpu 3 cpu 1 cpu 1 cpu 1
Best Known Results
Lehoczky et al. CMU ECRTS 2009 Best Known Results
Best Known Results Our New Result
Lehoczky’s Algorithm [ ECRTS’09] � sort all tasks in decreasing order of utilization 8 lowest utilization 7 6 5 4 3 2 highest utilization 1
Lehoczky’s Algorithm [ ECRTS’09] � pick up one processor, and assign as many tasks as possible P1 8 lowest utilization 7 6 5 4 3 2 highest utilization 1
Lehoczky’s Algorithm [ ECRTS’09] � pick up one processor, and assign as many tasks as possible P1 lowest utilization 7 6 8 5 4 3 2 highest utilization 1
Lehoczky’s Algorithm [ ECRTS’09] � pick up one processor, and assign as many tasks as possible P1 lowest utilization 7 6 8 5 4 3 2 highest utilization 1
Lehoczky’s Algorithm [ ECRTS’09] � pick up one processor, and assign as many tasks as possible P1 lowest utilization 6 1 7 8 6 2 5 4 3 2 highest utilization 1
Lehoczky’s Algorithm [ ECRTS’09] � pick up one processor, and assign as many tasks as possible P1 P2 lowest utilization 6 1 7 8 6 2 5 4 3 2 highest utilization 1
Lehoczky’s Algorithm [ ECRTS’09] � pick up one processor, and assign as many tasks as possible P1 P2 lowest utilization 6 1 7 8 6 2 5 4 3 2 highest utilization 1
Lehoczky’s Algorithm [ ECRTS’09] � pick up one processor, and assign as many tasks as possible P1 P2 lowest utilization 6 1 7 5 8 6 2 4 3 2 highest utilization 1
Lehoczky’s Algorithm [ ECRTS’09] � pick up one processor, and assign as many tasks as possible P1 P2 lowest utilization 6 1 7 4 5 8 6 2 3 2 highest utilization 1
Lehoczky’s Algorithm [ ECRTS’09] � pick up one processor, and assign as many tasks as possible P1 P2 lowest utilization 6 1 3 7 4 5 8 6 2 2 highest utilization 1
Lehoczky’s Algorithm [ ECRTS’09] � pick up one processor, and assign as many tasks as possible P1 P2 lowest utilization 2 1 6 1 3 7 4 5 8 6 2 2 2 highest utilization 1
Lehoczky’s Algorithm [ ECRTS’09] � pick up one processor, and assign as many tasks as possible P1 P2 P3 lowest utilization 2 1 6 1 3 7 4 5 8 2 2 6 2 highest utilization 1
Lehoczky’s Algorithm [ ECRTS’09] � pick up one processor, and assign as many tasks as possible P1 P2 P3 lowest utilization 2 1 6 1 3 7 4 1 5 8 2 2 6 2 highest utilization
Lehoczky’s Algorithm [ ECRTS’09] � pick up one processor, and assign as many tasks as possible P1 P2 P3 lowest utilization 2 1 6 1 3 7 4 1 5 8 2 2 6 2 key feature: depth-first partitioning with decreasing utilization order highest utilization
Lehoczky’s Algorithm [ ECRTS’09] � pick up one processor, and assign as many tasks as possible P1 P2 P3 lowest utilization 2 1 6 1 3 7 4 1 5 8 2 2 6 2 Utilization Bound: 6 5 % highest utilization
Our Algorithm width-first partitioning with increasing priority order
Our Algorithm � sort all tasks in increasing priority order lowest priority 7 6 5 4 3 2 1 highest priority
Our Algorithm � select the processor on which the assigned utilization is the lowest lowest priority 7 6 5 P1 P2 P3 4 3 2 1 highest priority
Our Algorithm � select the processor on which the assigned utilization is the lowest lowest priority 6 5 P1 P2 P3 4 3 7 2 1 highest priority
Our Algorithm � select the processor on which the assigned utilization is the lowest lowest priority 5 P1 P2 P3 4 3 7 6 2 1 highest priority
Our Algorithm � select the processor on which the assigned utilization is the lowest lowest priority P1 P2 P3 4 3 7 5 6 2 1 highest priority
Our Algorithm � select the processor on which the assigned utilization is the lowest lowest priority P1 P2 P3 3 4 7 5 6 2 1 highest priority
Our Algorithm � select the processor on which the assigned utilization is the lowest lowest priority P1 P2 P3 3 4 7 5 6 2 1 highest priority
Our Algorithm � select the processor on which the assigned utilization is the lowest lowest priority P1 P2 P3 2 1 3 4 7 5 6 2 2 1 highest priority
Our Algorithm � select the processor on which the assigned utilization is the lowest lowest priority P1 P2 P3 2 1 2 2 3 4 7 5 6 1 highest priority
Our Algorithm � select the processor on which the assigned utilization is the lowest lowest priority P1 P2 P3 1 1 2 1 2 2 3 4 7 5 6 highest priority 1 2
Our Algorithm � select the processor on which the assigned utilization is the lowest lowest priority P1 P2 P3 1 2 1 1 2 1 2 2 3 4 7 5 6 highest priority
Our Algorithm � select the processor on which the assigned utilization is the lowest key feature: w idth-first partitioning lowest priority w ith increasing prio order P1 P2 P3 1 2 1 1 2 1 2 2 3 4 7 5 6 highest priority
Comparison � maximal number of task splitting both are M-1 Ours: width-first Lehoczky’s: depth-first (increasing priority order) (decreasing utilization order) P1 P2 P3 P1 P2 P3 1 2 6 1 3 1 1 1 2 1 3 7 4 4 5 2 5 8 8 7 6 3 2 6 2
Comparison � why is our algorithm better? Ours: width-first Lehoczky’s: depth-first (increasing priority order) (decreasing utilization order) P1 P2 P3 P1 P2 P3 1 2 6 1 3 1 1 1 2 1 3 7 4 4 5 2 5 8 8 7 6 3 2 6 2
Comparison key point: by our algorithm , split tasks generally have high priorities on each processor Ours: width-first Lehoczky’s: depth-first (decreasing utilization order) (increasing priority order) P1 P2 P3 P1 P2 P3 1 2 6 1 3 1 1 1 2 1 3 7 4 4 5 2 5 8 8 7 6 3 2 6 2
d d subtasks should be executed in the correct order Split Task r r P1 P2 P3
Split Task original utilization : synthetic utilization : split tasks cause “utilization increase”
Our Algorithm � intuition � high priority tasks have better chance to meet their deadlines P1 P2 … …
Our Algorithm � intuition � an extreme scenario: � each subtask has the highest priority on each processor � can meet their deadlines anyway � no “utilization increase” P1 P2 … …
Theorem for a task set in with each task satisfies we have reasonable constraint in real-life systems
Our Algorithm � problem of heavy tasks 8 7 6 lowest priority P1 P2 P3 5 4 3 2 1 highest priority
Our Algorithm � problem of heavy tasks 7 6 lowest priority P1 P2 P3 5 8 4 3 2 1 highest priority
Our Algorithm � problem of heavy tasks 6 lowest priority P1 P2 P3 5 8 7 4 3 2 1 highest priority
Our Algorithm � problem of heavy tasks lowest priority P1 P2 P3 5 8 7 6 4 3 2 1 highest priority
Our Algorithm � problem of heavy tasks lowest priority P1 P2 P3 5 1 5 2 8 7 6 4 3 2 1 highest priority
Our Algorithm � problem of heavy tasks lowest priority P1 P2 P3 5 1 5 2 8 7 6 4 3 2 1 highest priority
Our Algorithm � problem of heavy tasks lowest priority P1 P2 P3 5 1 4 5 2 8 7 6 3 2 1 highest priority
Our Algorithm � problem of heavy tasks lowest priority P1 P2 P3 5 1 3 4 5 2 8 7 6 2 1 highest priority
Our Algorithm � problem of heavy tasks lowest priority P1 P2 P3 2 5 1 3 4 5 2 8 7 6 1 highest priority
Our Algorithm � problem of heavy tasks lowest priority P1 P2 P3 1 2 5 1 3 4 5 2 8 7 6 highest priority
The idea w orks for all tasks! � To get rid of the constraint � pre-assign tasks with high utilization
The idea w orks for all tasks! lowest priority 5 P1 P2 P3 4 3 2 highest priority 1
The idea w orks for all tasks! lowest priority 5 P1 P2 P3 3 4 2 pre-assign the heavy task highest priority 1
Recommend
More recommend