Problems in FIFO Scheduling with Multiple Offsets

First-In-First-Out (FIFO) is a widely used scheduling policy that can easily be implemented in hardware or software. With FIFO scheduling, the order in which jobs of tasks are executed depends only on their release times. This means that there are no preemptions, since no future job can have a higher priority than one that has already been released. Since tasks are not preempted, their worst-case execution times (WCETs) can be estimated with a higher degree of accuracy [1]. Further, on a uniprocessor, non-preemptive execution means that a running task has exclusive access to shared resources. This allows FIFO scheduling to reduce both design complexity and implementation overheads [2]. FIFO scheduling is also sustainable w.r. t. a reduction in execution times, i.e., if a task set is schedulable under the FIFO policy when all jobs exhibit their WCETs, then the system remains schedulable even if some jobs require less execution time [3]. As a result, in the absence of release jitter, it is possible to use a simulation-based schedulability test to obtain exact response-time analysis for periodic tasks under FIFO scheduling. The key issue with FIFO scheduling is that it does not take task deadlines into account and so is ineffective at meeting time constraints [3]. This is because once a task enters the FIFO queue, its position in the queue cannot be changed even if a more urgent task is released later. FIFO scheduling of a hard real-time system therefore usually implies a severe under-utilization of the processing resource [2]. In an attempt to improve schedulability, Altmeyer et al. [3] proposed a method where offsets are chosen randomly until an assignment is found that is schedulable using FIFO scheduling; however, this solution does not scale well beyond a few tasks or to task sets with a high utilization [2]. We note that this is an example of the classic offset assignment problem, where the goal is to find an offset for each task such that the task set becomes schedulable by the given scheduling algorithm. In this case, the initial offset chosen for each task affects both the release times and the absolute deadlines of its jobs. Recently, Nasri et al. [2] introduced a novel and different way of using offsets. Here, the initial offsets are assumed to be fixed, and hence the absolute deadlines for the jobs are also fixed. With the approach of Nasri et al. [2], jobs are partitioned into different groups and each group has a different additional relative offset applied. These relative offsets affect only the release times of the jobs, but not their deadlines. Fig. 1-(a) shows a FIFO schedule using multiple offsets. Note that this task set is not schedulable by any work-conserving policy if each task has only one offset (see Fig. 1-(b)). This example illustrates that going beyond one offset per task can yield significant gains in schedulability [2]. Next, we precisely define the relative offset assignment problem with multiple offsets, as explored by Nasri et al. [2]. We assume that a periodic task set is represented by τ = {τ1, τ2, . , τn}, where each task τi is characterized by its period Ti, deadline Di, WCET Ci, and initial offset Oi. In order to express multiple offsets for a task, we use offset pairs denoted by OP = (k, o), where k is the job index (from the start of the hyperperiod) from which a new offset o is applied. For example, an offset pair (3, 12) means that starting from the third job in the hyperperiod, each job of the task has an offset of 12 +Oi, until this is changed by a later offset pair (if any). More precisely, the release time and deadline of the j job of task τi with relative offset oi,x are ri,j = Oi + (j − 1) · Ti + oi,x and Di,j = Oi + (j − 1) · Ti +Di respectively. (Note that the relative offset does not alter the deadline).