Scheduling real-time tasks on processors is a problem that has taken considerable attention in the last decade. The goal is to find a feasible schedule for these tasks, that is a schedule according to which no task misses its deadlines. Several versions of this problem have been addressed and a number of different solutions have been given. One of the simplest versions assumes a periodic-preemptive-independent task model with implicit deadlines, PPID for short. According to the PPID model each task is independent of the others, jobs of the same task are released periodically, each job of a task must finish before the release time of its successor job, and the system is fully preemptive.
A scheduling algorithm is considered optimal if it is able to find a feasible schedule whenever one exists. Some optimal scheduling algorithms for the PPID model have been found. For example, it has been shown that if all tasks share the same deadline [McNaughton59], the system can be optimally scheduled with a very low implementation cost. The assumed restriction on task deadlines, however, prevents the applicability of this approach. Other optimal algorithms remove this restriction but impose a high implementation cost due to the required number of task preemptions [Baruah96, Cho06, Levin2010]. It is also possible to find trade-offs between optimality and preemption cost [Andersson08, Massa10, Andersson08b, Bletsas09].
Optimal solutions for the scheduling problem in the PPID model are able to create preemption points that make it possible task migrations between processors allowing for the full utilization of the system. As illustration consider that there are three tasks, , and , to be scheduled on two processors. Suppose that each of these tasks requires time units of processor and must finish time units after they are released. Also, assume that all three tasks have the same release time. As can be seen in Figure LABEL:fig:probSched, if two of these tasks are chosen to execute at their release time and they are not preempted, the pending task will miss its deadline. As all tasks share the same deadline in this example, the approach by McNaughton [McNaughton59] can be applied, as illustrated in the figure. If this was not the case, generating possibly infinitely many preemption points could be a solution as it is shown by other approaches [Baruah96, Cho06, Levin2010]. In this work we are interested in a more flexible solution.