Implementing Slot-Based Task-Splitting Multiprocessor Scheduling
Ref: HURRAY-TR-110704 Publication Date: 15 to 17, Jun, 2011
Implementing Slot-Based Task-Splitting Multiprocessor SchedulingRef: HURRAY-TR-110704 Publication Date: 15 to 17, Jun, 2011
Consider the problem of scheduling a set of sporadic tasks on a multiprocessor system to meet deadlines using a tasksplitting scheduling algorithm. Task-splitting (also called semipartitioning) scheduling algorithms assign most tasks to just one processor but a few tasks are assigned to two or more processors, and they are dispatched in a way that ensures that a task never executes on two or more processors simultaneously. A particular type of task-splitting algorithms, called slot-based task-splitting dispatching, is of particular interest because of its ability to schedule tasks with high processor utilizations. Unfortunately, no slot-based task-splitting algorithm has been implemented in a real operating system so far. In this paper we discuss and propose some modifications to the slot-based task-splitting algorithm driven by implementation concerns, and we report the first implementation of this family of algorithms in a real operating system running Linux kernel version 2.6.34. We have also conducted an extensive range of experiments on a 4-core multicore desktop PC running task-sets with utilizations of up to 88%. The results show that the behavior of our implementation is in line with the theoretical framework behind it.
6th IEEE International Symposium on Industrial Embedded Systems (SIES 11), IEEE, pp 256-265.