You are on page 1of 10

Multiple-Resource Periodic Scheduling Problem:

how much fairness is necessary? ∗

Dakai Zhu, Daniel Mossé and Rami Melhem


Computer Science Department
University of Pittsburgh
Pittsburgh, PA 15260
{zdk, mosse, melhem}@cs.pitt.edu

Abstract resources, which explicitly requires tasks to make propor-


tional progress; that is, at any time t, the accumulated re-
The Pfair algorithms are optimal for independent peri- source allocation for task Ti will be either t · wi  or
odic real-time tasks executing on a multiple-resource sys- t · wi , where wi = pcii is the weight of Ti . While achiev-
tem, however, they incur a high scheduling overhead by ing full system utilization, the Pfair algorithms incur very
making scheduling decisions in every time unit to enforce high scheduling overhead by making scheduling deci-
proportional progress for each task. In this paper, we will sion at every time unit [1, 2, 4, 5, 8, 11].
propose a novel scheduling algorithm, boundary fair (BF ), Since a task can only miss its deadline at a period bound-
which makes scheduling decisions and enforces fairness to ary, we propose in this paper a novel algorithm, boundary
tasks only at period boundaries. The BF algorithm is also fair (BF ), which makes scheduling decisions only at period
optimal in the sense that it achieves 100% system utiliza- boundaries. That is, at any period boundary, the BF algo-
tion. Moreover, by making scheduling decisions at period rithm allocates resources to tasks for the time units between
boundaries, BF effectively reduces the number of schedul- current boundary and next boundary. Similar to the Pfair al-
ing points. Theoretically, the BF algorithm has the same gorithms, to prevent deadline misses, BF ensures fairness
complexity as that of the Pfair algorithms. But, in practice, for tasks at the boundaries; that is, for any period bound-
it could reduce the number of scheduling points dramati- ary time bt , the difference between bt · wi and the number
cally (e.g., upto 75% in our experiments) and thus reduce of time units allocated to task Ti is less than one time unit.
the overall scheduling overhead, which is especially impor- The BF algorithm is optimal in the sense that it can
tant for on-line scheduling. achieve 100% system utilization. Although it has the
same complexity as that of the Pfair algorithms in the-
1. Introduction ory, the BF algorithm could reduce the number of
The multiple-resource periodic scheduling problem was scheduling points dramatically in practice, and thus re-
first addressed by Liu in 1969 [9]. It concerns allocating duce the overall scheduling overhead, which is especially
m identical resources to n periodic tasks, where a task important for on-line scheduling. While the actual reduc-
Ti = (ci , pi ) is characterized by two parameters: a re- tion depends on the task sets, from our experiments, the
source requirement ci and a period pi . A feasible periodic number of scheduling points is reduced upto 75% com-
schedule will allocate exactly ci time units of a resource pared to that of the Pfair algorithms. Moreover, the over-
to task Ti within each interval [(k − 1) · pi , k · pi ) for all all time overhead to generate a feasible schedule for BF
k ∈ {1, 2, 3, . . .} with the constraints that a resource can is much less than that of P D [5] (an efficient Pfair algo-
only be allocated to one task and a task can only occupy rithm) when the number of tasks is less than 100.
one resource for any time unit. There are several contributions of this work. First, we
Proportional fair (Pfair) scheduling, first proposed introduce the concept of boundary fairness in the periodic
by Baruah et al. [4], is the well-known optimal schedul- scheduling problem, which is not as fair as Pfair (at any
ing method for scheduling periodic tasks on multiple time) but fair enough (only at period boundaries) to get a
feasible schedule. Second, we propose a BF scheduling
∗ This work has been supported by the Defense Advanced Research algorithm and prove its correctness to generate a feasible
Projects Agency through the PARTS project (Contract F33615-00-C- schedule. Finally, the proposed algorithm is also optimal in
1736). the sense of achieving 100% system utilization.

Proceedings of the 24th IEEE International Real-Time Systems Symposium (RTSS’03)


0-7695-2044-8/03 $ 17.00 © 2003 IEEE
1 4 1 3 4 1 4 1 2 5 4 1 1 3 5 1 4 1 3 4 1 4 1 2 5 4 1 1 3 5

5 5 2 5 6 5 5 5 3 6 5 2 5 4 6 5 5 2 5 6 5 5 5 3 6 5 2 5 4 6

0 5 6 10 12 15 18 20 24 25 30
a. A proportional fair schedule

1 2 3 4 1 1 2 3 4 1 2 1 3 4 1 2 3 4 1 2 3 5 1 2 3 4

4 5 6 5 5 6 4 5 5 6 4 5 5 6 4 5 6 4 5 6

0 5 6 10 12 15 18 20 24 25 30
b. A boundary fair schedule

Figure 1. Different fair schedules for the example; the dot lines are period boundaries

The remainder of this paper is organized as follows. Sec- • C1: A resource can only be allocated to one task at any
tion 2 defines the boundary fairness and related concepts time, that is, resources can not be shared concurrently;
and gives a motivating example. Section 3 presents a BF al- • C2: A task can only be allocated at most one resource
gorithm and its complexity analysis. The correctness of the at any time, that is, tasks are not parallel and thus can-
BF algorithm is presented in Section 4. Experimental re- not occupy more than one resource at any time.
sults are reported in Section 5. Closely related work is dis-
Assume that the least common multiple of all tasks’ pe-
cussed in Section 6 and Section 7 gives out our conclusion.
riod is LCM and the first instance of each task is avail-
able at time 0. Because of the periodic property of the prob-
2. Preliminaries lem, we only consider the schedule from time 0 to time
LCM . We define a set of period boundary time points
In this section, we formally state the multiple-resource
as B = {b0 , . . . , bf }, where b0 = 0, bf = LCM and
periodic scheduling problem, and define the boundary fair-
∀c, ∃(i, k), bc = k · pi and bc < bc+1 (c = 0, . . . , f − 1).
ness as well as related notations. An example is also pre-
Define time unit (or slot) t as the real interval between
sented to illustrate the idea of boundary fairness.
time t − 1 and time t (including t − 1, excluding t), t ∈
The system consists of m identical resources and n pe-
{1, 2, 3, . . .}. For convenience, we use [bk , bk+1 ) to denote
riodic tasks, {T1 , . . . , Tn }, where each task Ti = (ci , pi ) time units between two boundaries, bk and bk+1 , including
is characterized by its resource requirement ci and its pe-
time unit bk and excluding time unit bk+1 . Define alloca-
riod pi . ci and pi are integer multiples of a system unit time. tion error for task Ti at boundary time bk as the difference
The deadline for each task instance is the task’s next period between bk · wi and the time units allocated to Ti before bk .
boundary. The weight for task Ti is defined as wi = pcii ,
n A periodic schedule is boundary fair if and only if the ab-
and the system utilization is U = i=1 wi . Without loss solute value of the allocation error for any task Ti at any
of generality, we assume that wi < 1 (notice that actu- boundary time bk is less than one time unit.
ally 0 < wi ≤ 1; if wj = 1, we can dedicate one re-
source to Tj and consider the remaining tasks on the re- Lemma 1 For the multiple-resource periodic scheduling
maining resources). We also assume that the system utiliza- problem, if the system utilization, U , is no bigger than m,
tion U = m, the number of resources available1 . the number of resources, a boundary fair schedule exists.
The multiple-resource periodic scheduling problem is to Proof If U ≤ m, a proportional fair (Pfair) schedule is
construct a periodic schedule for the above tasks, which al- known to exist for the multiple-resource periodic schedul-
locates exactly ci time units of a resource to task Ti within ing problem [4]. From the definitions, we know that any
each interval [(k−1)·pi , k·pi ) for all k ∈ {1, 2, 3, . . .}, sub- Pfair schedule is also a boundary fair schedule (a Pfair
ject to the following constraints [5]: schedule also conforms to the allocation error requirements
at boundaries). That is, a boundary fair schedule exists if
U ≤ m.
1 If m − 1 < U < m, we can add one dummy task Tn+1 = (c, p)
n+1 ♦
such that i=1
wi = m. If U ≤ m − 1, we can just use U  re- To illustrate the idea of boundary fairness, we first con-
sources [11]. sider an example task set that has 6 tasks: T1 = (2, 5),

Proceedings of the 24th IEEE International Real-Time Systems Symposium (RTSS’03)


0-7695-2044-8/03 $ 17.00 © 2003 IEEE
T2 = (3, 15), T3 = (3, 15), T4 = (2, 6), T5 = (20, 30), Algorithm 1 The BF algorithm at bk

T6 = (6, 30). Here, 6i=1 wi = 2 and LCM = 30. Fig- 1: for (T1 , . . . , Tn ) do
ure 1a shows one proportional fair schedule generated by 2: /*allocate mandatory units for Ti */
P F [4], where the dotted lines are the period boundaries. 3: mk+1
i = max{0, RWik + (bk+1 − bk ) · wi };
Note that this schedule is also a boundary fair schedule. 4: P Wik+1 = RWik + (bk+1 − bk ) · wi − mk+1 i ;
5: end for  k−1
From Figure 1a we see that there is an excessive number 6: RU = m · (bk+1 − bk ) − mi ;
of scheduling points as well as context switches due to the 7: /*allocate optional time-resource units if any*/
requirement of proportional progress (fairness) for each task 8: /*Pick up the RU highest priority tasks*/
at any time. Consider the schedule section between two con- 9: SelectedT askSet = TaskSelection(RU );
secutive boundaries, for example, [b0 , b1 ) = [0, 5): here T1 10: for (Ti ∈ SelectedT askSet) do
and T4 get 2 time units each, T2 , T3 and T6 get 1 unit each 11: ok+1
i = 1; /*allocate an optional unit for Ti */
and T5 gets 3 units. If we follow the idea of McNaughton’s 12: end for
algorithm [10] and pack tasks within this section on two re- 13: for (T1 , . . . , Tn ) do
sources sequentially (consecutively fill resources with tasks 14: RWik+1 = P Wik+1 − ok+1 i ;
one by one), after T1 , T2 , T3 are packed on the first resource, 15: end for
16: GenerateSchedule(bk , bk+1 );
there is one time unit left and part of T4 ’s allocation (one
time unit) is packed on the first resource; the rest of T4 ’s Similar to [4], at boundary time bk+1 , task Ti is said to
allocation (another time unit) is packed on the second re- be ahead if RWik+1 < 0, punctual if RWik+1 = 0 and be-
source followed by T5 and T6 . Thus, we can schedule [0, 5) hind if RWik+1 > 0. Furthermore, we define task Ti to be
as shown in Figure 1b. Continuing the above process for pre-behind at b k+1 if P Wik+1 > 0.
other schedule sections until LCM , we can get a bound- The BF algorithm is presented in Algorithm 1, where
ary fair schedule as shown in Figure 1b. RU is the remaining units after allocating tasks’ manda-
Considering that the deadline misses can only happen at tory units. It is used to determine how many optional units
the end of a task’s period, we propose a novel scheduling need to be allocated. Initially, RWi0 = 0 (i = 1, . . . , n).
algorithm: at any boundary time point bk (k = 0, . . . , f − First, the algorithm allocates mandatory units for each
1), we allocate resources to tasks for time units [bk , bk+1 ) task Ti in the first F OR loop. Next, if there are time units
properly. The details are discussed in the next section. left (i.e., RU > 0), the function of T askSelection(RU )
will return the RU highest priority eligible tasks2 and each
of them will get one optional unit. After allocating all time
3. A Boundary Fair (BF ) Algorithm
units, RWik+1 are updated in the second F OR loop and
The BF algorithm has the following high-level struc- the schedule for section [bk , bk+1 ) is generated by func-
ture: at each boundary time, it allocates resources to tasks tion GenerateSchedule(), which sequentially packs tasks
for time units between the current and next boundaries; each to resources following the idea of McNaughton’s algorithm
task Ti will have some mandatory integer time units that [10] (see Figure 1b and Section 2).
must be allocated to ensure fairness at the next boundary; if To determine tasks’ priorities when allocating optional
there are idle resource slots after allocating the mandatory units, following the idea in [4], a characteristic string of
time units for every task, a dynamic priority is assigned to task Ti at boundary time bk is a finite string over {−, 0, +}
all eligible (as defined later) tasks and a few tasks with the and is defined as:
highest priorities will get one optional time unit each. α(Ti , k) = αk+1 (Ti )αk+2 (Ti ), . . . , αk+s (Ti )
Before formally presenting the BF algorithm, we give
where αk (Ti ) = sign[bk+1 ·wi −bk ·wi −(bk+1 −bk )] and
some definitions. We say that the remaining work for task
s(≥ 1) is the minimal integer such that αk+s (Ti ) =  + .
Ti after allocating [bk , bk+1 ) is the same as the allocation
Then, if αk+s (Ti ) = − , the urgency factor is defined as
error (see Section 2) of Ti at bk+1 and denoted as RWik+1 . 1−(bk+s ·wi −bk+s ·wi )
The mandatory integer units needed for Ti while allocat- U Fik = wi , which is the minimal time
ing [bk , bk+1 ) is defined as mk+1 i = max{0, RWik + needed for a task to collect enough work demand to re-
(bk+1 − bk ) · wi }, which is the integer part of the sum- ceive one unit allocation and become punctual after bk+s .
mation of the remaining work from [bk−1 , bk ) and the work Finally, the priority for task Ti at time bk is defined as a tu-
to be done during [bk , bk+1 ). The pending work is the corre- ple ηik = {α(Ti , k), U Fik }.
sponding decimal part and denoted as P Wik+1 = RWik + The priority comparison function Compare(Ti , Tj ),
(bk+1 − bk ) · wi − mk+1 i . If Ti gets one optional unit used by T askSelection(), compares two eligible tasks’
while allocating [bk , bk+1 ), we say that ok+1i = 1; other-
wise ok+1
i = 0. From these definitions, after allocating re- 2 A task Ti is eligible for an optional unit if P Wik+1 > 0 (it is pre-
sources in [bk , bk+1 ), we get RWik+1 = P Wik+1 − ok+1 i . behind) and mk+1
i < bk+1 − bk (it is not fully allocated).

Proceedings of the 24th IEEE International Real-Time Systems Symposium (RTSS’03)


0-7695-2044-8/03 $ 17.00 © 2003 IEEE
Algorithm 2 The function Compare(Ti , Tj ) at bk tasks’ priorities. That is, when αk+1 (Ti ) = αk+1 (Tj ) = +
1: /*For task Ti and Tj , assume that i < j;*/ (i < j), instead of looking forward to future boundaries, we
2: s = 1; can compare the priorities for two counter tasks CTi and
3: while (αk+s (Ti ) = αk+s (Tj ) = + ) do CTj , which have the weight of 1 − wi and 1 − wj , respec-
4: s = s + 1; tively. Since the characters for CTi and CTj would be  − at
5: end while bk+1 , we will need to calculate the urgency factors for them.
6: if (αk+s (Ti ) > αk+s (Tj )) then If CTi ’s urgency factor is less than that of CTj , Tj has the
7: return (Ti > Tj );
higher priority; otherwise, Ti has the higher priority. It can
8: else if (αk+s (Ti ) < αk+s (Tj )) then
be proved that the above process will return the same re-
9: return (Ti < Tj );
10: else if (αk+s (Ti ) = αk+s (Tj ) = 0 ) then sult as that of Compare() for any two eligible tasks. Due
11: return (Ti > Tj ); to the space limitation, we will not present the algorithm
12: else if (U Fik+1 > U Fjk+1 ) then and the proof here. Thus, using the constant priority com-
13: return (Ti < Tj ); parison function and any linear-comparison selection algo-
14: else rithm (e.g., [6]), the complexity of our BF algorithm will
15: return (Ti > Tj ); be O(n), which is comparable to that of the P D algorithm,
16: end if O(min{n, m lg n}) [5].
priorities and is shown in Algorithm 2. First, the char-
acteristic strings of the tasks’ are compared, then their Sample execution of the BF algorithm
urgency factors if necessary. When comparing the char- Before we present the proof of correctness for our BF
acteristic strings, the comparison is done by comparing algorithm, we illustrate the execution of BF for the exam-
characters starting from bk+1 until one task’s charac- ple in page 3. There are 10 boundary time points within [0,
ter does not equal to  + at the boundary time point bk+s 30). The parameters used by our algorithm are calculated as
(the W HILE condition in Algorithm 2). If there is a dif- shown in Table 3, where a  ∗ means the corresponding item
ference, the task with higher character (here, we have is not eligible or does not need to be calculated.
 
− <  0 <  + ) has higher priority; if both of them As we can see, initially, RWi0 = 0, (i = 1, . . . , 6).
equal  0 , the task with smaller identifier has higher prior- When allocating the first section (from b0 to b1 ), the manda-
ity; if both of them equal  − , the urgency factors are com- tory units for each task are allocated in the first step,
6 T11, . . . , T6 get 2, 1, 1, 1, 3, 1 units, respectively. Since
pared and the task with smaller urgency factor has higher where
i=1 mi = 9 and the total available time units are (b1 −
priority; when there still a tie, the task with the smaller iden-
tifier has higher priority. b0 ) · m = (5 − 0) · 2 = 10, there is 1 time unit left (i.e.,
RU = 1). To allocate it, one task is to be selected to receive
Complexity of the BF algorithm an optional unit. Notice that there are 2 eligible tasks T4 and
T5 (at time b1 , P Wi1 > 0 and m1i < 5, i = 4, 5), and their
Assume that the maximum period for all tasks is pmax ,
characteristic strings are α(T4 , 0) = 0 and α(T5 , 0) = 0 .
that is, pmax = max(pi ) (i = 1, . . . , n). In the function
Task T4 has the highest priority (T4 and T5 have same char-
Compare(), there are at most pmax iterations of charac-
acter  0 at b1 , so the task with smaller identifier has higher
ter comparison for corresponding tasks in the W HILE
priority) and will get an optional time unit. After that, the al-
loop (line 3 in Algorithm 2); this is because after the end
location for [0, 5) is complete and RWi1 (i = 1, . . . , 6) val-
of a period, the character for a task is no longer equal
  ues are calculated accordingly. The schedule for the section
+ . So, the complexity for Compare() is O(pmax ). Us-
[0, 5) will be generated by packing tasks to resources se-
ing any linear-comparison selection algorithm (e.g., [6]),
quentially as shown in Figure 1b (see Section 2).
T askSelection() from line 9 of Algorithm 1 needs to make
For section [5, 6), only T5 gets one mandatory unit
O(n) calls to the function Compare() to decide which RU -
(m25 = max{0, RW51 + 2 · w5 } = 1) and there is one ad-
subset of all eligible tasks to receive the optional units. Note
ditional unit to be allocated. T1 , T2 , T3 and T6 are eligible
that the function GenerateSchedule() (line 16 in Algo-
tasks because P Wi2 > 0 and m2i < b2 − b1 (i = 1, 2, 3, 6).
rithm 1) has a complexity of O(n) by sequentially packing
All these tasks have α(Ti , 1) =  − . T1 has the high-
all tasks onto resources. Thus, the overall complexity of the
est priority with the smallest urgency factor and will get
BF algorithm is O(n · pmax ), as in the P F algorithm [4].
an optional unit. These steps are repeated until after allo-
cating section [25, 30), and we get a boundary fair sched-
Constant-Time Priority Comparison ule within the LCM . Note that the schedule generated by
To improve the efficiency of the priority comparison our BF algorithm is shown in Figure 1b, which is also gen-
function, following the idea in [5], we can design a con- erated from proportional fair schedule as explained in
stant time comparison algorithm to compare two eligible Page 3. However, there are only 10 scheduling points for

Proceedings of the 24th IEEE International Real-Time Systems Symposium (RTSS’03)


0-7695-2044-8/03 $ 17.00 © 2003 IEEE
time 0 5 6 10 12 15 18 20 24 25 30
bk b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10
RW1k 0 0 -3/5 0 -1/5 0 -4/5 0 -2/5 0 0
RW2k 0 0 1/5 0 -3/5 0 -2/5 0 -1/5 0 0
RW3k 0 0 1/5 0 2/5 0 3/5 0 -1/5 0 0
RW4k 0 -1/3 0 1/3 0 0 0 -1/3 0 1/3 0
RW5k 0 1/3 0 -1/3 0 0 0 1/3 0 -1/3 0
RW6k 0 0 1/5 -0 2/5 0 3/5 0 4/5 0 0
mk1 * 2 0 1 0 1 1 0 1 0 2
mk2 * 1 0 1 0 0 0 0 0 0 1
mk3 * 1 0 1 0 1 0 1 0 0 1
mk4 * 1 0 1 1 1 1 0 1 0 2
mk5 * 3 1 2 1 2 2 1 3 0 3
mk6 * 1 0 1 0 1 0 1 0 1 1
P W1k * 0 2/5 0 4/5 0 1/5 0 3/5 0 0
P W2k * 0 1/5 0 2/5 0 3/5 0 4/5 0 0
P W3k * 0 1/5 0 2/5 0 3/5 0 4/5 0 0
P W4k * 2/3 0 1/3 0 0 0 2/3 0 1/3 0
P W5k * 1/3 0 2/3 0 0 0 1/3 0 2/3 0
P W6k * 0 1/5 0 2/5 0 3/5 0 4/5 0 0
αk (T1 ) * - - - - - - - 0 - -
αk (T2 ) * - - - - - - - 0 - -
αk (T3 ) * - - - - - - - 0 - -
αk (T4 ) * 0 - - - - - - - - -
αk (T5 ) * 0 - 0 - - - - - - -
αk (T6 ) * - - - - - - - 0 - -
U F1k * * 3/2 * 1/2 * 2 * * * *
U F2k * * 4 * 3 * 2 * * * *
U F3k * * 4 * 3 * 2 * * * *
U F4k * * * * * * * 1 * 2 *
U F5k * * * * * * * 1 * 1/2 *
U F6k * * 4 * 3 * 2 * * * *
ok1 * 0 1 0 1 0 1 0 1 0 0
ok2 * 0 0 0 1 0 1 0 1 0 0
ok3 * 0 0 0 0 0 0 0 1 0 0
ok4 * 1 0 0 0 0 0 1 0 0 0
ok5 * 0 0 1 0 0 0 0 0 1 0
ok6 * 0 0 0 0 0 0 0 0 0 0

Table 1. The execution of the BF algorithm for the example


the BF algorithm and 30 for the P F algorithm [4]. Fur- • After allocation, ni=1 RWik+1 = 0 (which means
thermore, the schedule generated by BF (Figure 1b) will resources are fully allocated) and ∀i |RWik+1 | < 1
also incur less context switches than the schedule gener- (which means the schedule is fair).
ated by P F (Figure 1a).
These observations will be used to present the correctness
From this example, we can see that when allocating the
of our algorithm as shown in the next section.
resources in [bk , bk+1 ):
• The summation of the mandatory units is less than or 4. Analysis of the BF Algorithm
equal
n to the time units available (see Lemma 3):
k+1
i=1 m i ≤ (bk+1 − bk ) · m; First, we recall that P Wik = RWik−1 + (bk − bk−1 ) ·
• There are enough eligible tasks to claim the remain- wi − mki (where mki = max{0, RWik−1 + (bk − bk−1 ) ·
ing units if any (see Lemma 4): wi }), and RWik = P Wik − oki . For convenience, we define
the number of eligible tasks ≥ (b k+1 − bk ) · m −
 some notations. Three task sets are defined as in [4]:
n k+1
i=1 mi ; AS k = {Ti |RWik < 0} : ahead task set at bk ;

Proceedings of the 24th IEEE International Real-Time Systems Symposium (RTSS’03)


0-7695-2044-8/03 $ 17.00 © 2003 IEEE
BS k = {Ti |RWik > 0} : behind task set at bk ; (h) If Ti ∈ BS k−1 ∩ BS k and mki + oki = bk − bk−1 , 0 <
P S k = {Ti |RWik = 0} : punctual task set at bk ; RWik < RWik−1 .
Furthermore, a task Ti is said to be pre-ahead at b k ♦
if P Wik < 0, which means that even if Ti does not get
Below we give a proof sketch of Lemma 2, which will be
any mandatory unit (mki = 0; otherwise, there will be
used by Lemmas 3 and 4; the formal proof is omitted for the
P Wik ≥ 0, a contradiction) in [bk−1 , bk ) it will still be
sake of brevity. For task Tx ∈ P AS k ⊆ AS k , from Proper-
ahead at bk . The pre-ahead task set is defined as:
ties 1c and 1e, we have mkx = okx = 0 and αk−1 (Tx ) = − .
P AS k = {Ti |P Wik < 0}.
If Tx gets an optional unit during last iteration when al-
A task Ti is said to be pre-behind at b k if P Wik > 0 after
locating [bk−2 , bk−1 ) (i.e., ok−1
x = 1), for any task Ty
allocating mki , but it may “recover” after the optional units
(x = y) that is behind at bk−1 and is not fully allocated
allocation. The pre-behind task set is defined as:
during last iteration (i.e., Ty ∈ ES k−1 ), from the BF al-
P BS k = {Ti |P Wik > 0}.
gorithm, we have that Ty ’s priority is lower than that of Tx ;
Notice that, if a task Ti is punctual after mandatory units that is, αk−1 (Ty ) = αk−1 (Tx ) = − and Ty ’s urgency fac-
allocation, it will not get any optional unit and will still be tor (U Fyk−1 ) is bigger than or equal to that of Tx (U Fxk−1 ).
punctual after optional units allocation; thus, there is no
Since Tx ∈ P AS k ⊆ AS k , we have U Fxk−1 > bk − bk−1
need to define a pre-punctual task set. Moreover, we de-
(otherwise, there will be P Wxk ≥ 0 and Tx ∈ / P AS k , a con-
fine the eligible task set as:
tradiction).
ES k = {Ti |(Ti ∈ P BS k ) AND (mki < bk − bk−1 )};
This scenario is further illustrated in Figure 3, where
tx and ty are the nearest punctual time points after bk−1
m k=0 o k=0 for Tx and Ty , respectively. Recall that, the urgency fac-
ASk−1 PAS k ASk tor is the minimal time needed for a task to collect enough
o k=1 work and become punctual after bk−1 . We have U Fyk−1 =
BSk−1 PBS k o k=0 BSk ty − bk−1 ≥ U Fxk−1 = tx − bk−1 > bk − bk−1 , that is,
ty ≥ tx > bk . Thus, we have Lemma 2.

PS k−1 PS k o k=0 PS k
Figure 2. Task transitions from bk−1 to bk . UFxk−1
Tx

tx t
UFyk−1
Ty
From these definitions, we can get task transitions be-
tween bk−1 and bk as shown by Figure 2. For example, ty t
∀Ti ∈ P AS k , Ti was ahead at bk−1 and got no manda- bk−1 bk
tory unit. Moreover, Ti will get no optional unit (since it
Punctual time point for tasks
is not an eligible task) and still be ahead at bk . That is,
P AS k ⊆ AS k−1 and P AS k ⊆ AS k . For task Ti ∈ Figure 3. Urgency factors for different tasks.
AS k−1 , it is also possible for Ti to have enough work de-
mand during [bk−1 , bk ) and belong to P S k or P BS k . For
task Ti ∈ P BS k , Ti may get an optional unit to become
ahead or get no optional unit and remain behind at b k . Lemma 2 If ∃Tx ∈ P AS k , ok−1x = 1, and ∀Ty ∈ ES k−1
From the BF algorithm, we can easily get the following (x = y), then αk−1 (Ty ) = − and U Fyk−1 ≥ U Fxk−1 >
properties of the defined task sets. bk −bk−1 . ♦
Property 1 For the defined task sets: To prove that the BF algorithm correctly generates a
(a) If Ti ∈ BS k−1 and mki = 0, Ti ∈ P BS k ; boundary fair schedule, first we show that two conditions
(b) If αk−1 (Ti ) = + and Ti ∈ AS k , mki + oki = bk − bk−1 ; are always satisfied during allocating [bk−1 , bk ): (1) the
(c) ∀Ti ∈ P AS k , mki = oki = 0 and RWik−1 < RWik < 0; summation of all tasks’ mandatory integer units is at most
(d) If Ti ∈ BS k−1 and mki = oki = 0, Ti ∈ BS k and
equal to the available time units on the m resources; (2)
0 < RWik−1 < RWik ;
(e) If Ti ∈ AS k and mki = oki = 0, Ti ∈ AS k−1 and
there are enough eligible tasks to claim any available op-
αk−1 (Ti ) = − ; tional units. The proof for these conditions is by contradic-
(f) If Ti ∈ BS k and mki = bk − bk−1 , Ti ∈ BS k−1 and tion, that is, if any one of these two conditions is not met,
αk−1 (Ti ) = + ; we can show that there will be at least one task ahead and
(g) If Ti ∈ AS k−1 ∩ AS k and mki + oki = bk − bk−1 , RWik < one task behind in every one of the previous boundaries;
RWik−1 < 0; this will contradict the fact that there is at least one bound-

Proceedings of the 24th IEEE International Real-Time Systems Symposium (RTSS’03)


0-7695-2044-8/03 $ 17.00 © 2003 IEEE
ary (i.e., b0 ) in which every task is punctual. This is for- such that Tx ∈ P BS k−1 , ok−1 x = 1 and mk−1 y < bk−1 −
mally proved in the following two lemmas. bk−2 . From Lemma 2, there will be U Fyk−1 > U Fxk−1 >
 bk −bk−1 . Notice that from the definition of P W AS k−1 and
Lemma 3 If i wi = m and Algorithm 1 is followed at
boundary time b 0 , . . . , bk−1 and for v = 0, . . . , k − 1, P W BS k−1 , we have U Fyk−1 < U Fxk−1 , which is a con-
 v v tradiction.
i RWi = 0 and |RWi | <  1, then when allocating re-
sources in [bk−1 , bk ), we have i mki ≤ (bk − bk−1 ) · m. Below, we extend the construction of the non-empty sets
PWAS and PWBS to earlier boundaries. Recall that our in-
Proof The proof is by contradiction, that is, if the equa- tuition behind this proof is that there will at least one bound-
tion does not hold, we will show that both ahead set and be- ary (e.g. b0 ) in which every task is punctual.
hind set are not empty for each of the previous boundaries, If (a) is true, ∀Tx ∈ P W AS k−1 , Tx ∈ P AS k−1 . Define:
which contradicts the fact that there is at least one bound-
ary (i.e., b0 ) 
in which every task is punctual. P W AS k−2 = {Tx |Tx ∈ P W AS k−1 } = ∅;
Suppose i mki > (bk − bk−1 ) · m. By assumption, 
k
 k−1  P W BS k−2 = {Ty |(Ty ∈ BS k−2 )AN D( (mly + oly ) > 0)};
i RWi = 0 and i wi = m. Thus: l=k−1
 
k
P Wi = k−1
(RWi + (bk − bk−1 ) · wi − mi )
k
Suppose P W BS k−2 = ∅, that is, ∀Ty ∈ BS k−2 ,
k
i i
 l l
l=k−1 (my + oy ) = 0. From Properties 1a and
= (bk − bk−1 ) · m − mki ≤ −1
1d, Ty ∈ P BS k and BS k−2 ⊆ P BS k . Since
P W AS k−2 = P W AS k−1 = P AS k ⊆ P AS k−1 ⊆
i

Define two task sets P W AS (possibly-wrong ahead AS k−2 , from Property 1c, we have ∀Tx ∈ P W AS k−2 ,
set) and P W BS (possibly-wrong behind set) for bound- mxk−1 = oxk−1 = mkx = okx = 0. Therefore:
ary bk−1 as follows:  k
 k
P Wi > P Wi
P W AS k−1 = {Tx |Tx ∈ P AS k }; Ty ∈P BS k Ty ∈BS k−2
P W BS k−1 = {Ty |(Ty ∈ BS k−1 )AN D(mky ≥ 1)};  
> RWik−1 > RWik−2
k−1 k−1 ∈BS k−2 ∈BS k−2
Notice that, both P W AS and P W BS are not Ty

Ty

empty. Otherwise, if PW AS k−1 = ∅, we have i P Wik ≥ = − RWik−2 ≥ − RWik−2
0, which contradicts i P Wik ≤ −1. If P W BS k−1 = ∅, Tx ∈AS k−2 Tx ∈P AS k−1
 
we have ∀Ti ∈ BS k−1 , mki = 0. From Property 1a, ≥ − RWik−2 > − P Wik
Ti ∈ P BS k and BS k−1 ⊆ P BS k . Therefore: Tx ∈P AS k Tx ∈P AS k
  
k
P Wi ≥ k k−1
>0 
P Wi > RWi that is, i P Wik > 0, which is a contradiction.
Ti ∈P BS k Ti ∈BS k−1 Ti ∈BS k−1 So, both P W AS k−2 and P W BS k−2 are not empty.
Similarly, this will lead to either:
Notice that P AS k ⊆ AS k−1 , therefore:
   (i) ∀Tx ∈ P W AS k−2 , Tx ∈ P AS k−2 ; or
k−1
RWi < k−1
RWi < P Wik < 0 (ii) ∀Ty ∈ P W BS k−2 , mk−2 y = bk−2 − bk−3 ;
Ti ∈AS k−1 Ti ∈P AS k Ti ∈P AS k
If (b) is true, ∀Ty ∈ P W BS k−1 , mk−1
y = bk−1 − bk−2 .

By assumption, i RWik−1 = 0. Since ∀Ti ∈ P S k−1 , From Property 1f, Ty ∈ BS k−2 and αk−2 (Ty ) = + . Define:

RWik−1 = 0, thus Ti ∈AS k−1 RWi
k−1
= P W AS k−2 = {Tx |(Tx ∈ AS k−2 )AN D(∃Ty ∈ P W BS k−2 ,
 k−1
− Ti ∈BS k−1 RWi . Therefore: α(Tx , k − 3) < α(Ty , k − 3))};
  P W BS k−2 = P W BS k−1 = ∅;
k
P Wi > k−1
RWi =
Ti ∈P BS k Ti ∈BS k−1
If P W AS k−2 = ∅, then ∀Tx ∈ AS k−2 and
  ∀Ty ∈ P W BS k−2 , α(Tx , k − 3) ≥ α(Ty , k − 3).
− RWik−1 > − P Wik
Thus αk−2 (Tx ) = αk−2 (Ty ) = + . Since mky ≥ 1,
∈AS k−1 ∈P AS k
Ti Ti
whatever the value of αk−1 (Tx ) is, we will have
 k
 Tx ∈ (P BS k ∪ P S k ). Notice that P AS k = ∅, we
hence > 0 that contradicts i P Wik ≤ −1.
i P Wi
k−1 have ∃Tz ∈ ((BS k−2 − P W BS k−2 ) ∪ P S k−2 ),
So, both P W AS and P W BS k−1 are not empty.
Tz ∈ P AS k ⊆ AS k−1 (i.e., ok−1 z = 1). Note that
From Lemma 2 and the BF algorithm, we will get either: αk−2 (Tz ) < + (otherwise, Tz ∈ P W BS k−2 , a contradic-
(a) ∀Tx ∈ P W AS k−1 , Tx ∈ P AS k−1 ; or tion). Since ∀Tx ∈ AS k−2 , αk−2 (Tx ) = + (i.e., Tx ’s pri-
(b) ∀Ty ∈ P W BS k−1 , mk−1
y = bk−1 − bk−2 ; ority is higher than Tz ’s) and mk−1
x < bk−1 − bk−2 ,
Otherwise, ∃Tx ∈ P W AS k−1 and ∃Ty ∈ P W BS k−1 there will be ok−1
x = 1 and Tx ∈ AS k−1 (notice

Proceedings of the 24th IEEE International Real-Time Systems Symposium (RTSS’03)


0-7695-2044-8/03 $ 17.00 © 2003 IEEE
that mk−1
x + ok−1
x = bk−1 − bk−2 because of Prop- The proof for Lemma 4 is similar to that for Lemma 3
erty 1b), that is AS k−2 ⊆ AS k−1 . Then, there is and is omitted here due to space limitation. From Lemma 3
AS k−1 ⊇ (AS k−2 ∪ P AS k ). Since and 4, we can get the following theorem.
 
k−1
RWi =−
k−1
RWi Theorem 1 The schedule generated by Algorithm 1 is
Ti ∈BS k−1 Ti ∈AS k−1
boundary time b k (after allocat-
boundary fair, that is, at 
  ing [bk−1 , bk )), we have i RWik = 0 and |RWik | < 1
= RWik−1 + RWik−1
(i = 1, . . . , n).
Ti ∈P W BS k−1 Ti ∈(BS k−1 −P W BS k−1 )
  Proof The proof is by induction on boundary time bk .
≥ − RWik−1 − RWik−1
Base case: At time b0 , we have RWi0 = 0, i = 1, . . . , n,
Ti ∈AS k−2 Ti ∈P W AS k−1 =P AS k
that is, i RWi0 = 0 and |RWi0 | < 1;
Notice that P W BS k−2 = P W BS k−1 . From Property 1h: Induction step: Assume  that for boundary time
  b0 , . . . , bk−1 , we have i RWiv = 0 and |RWiv | < 1
k−1
RWi k−2
< RWi (v = 0, . . . , k − 1, i = 1, . . . , n);
Ti ∈P W BS k−1 Ti ∈P W BS k−2 When allocating [bk−1 , bk ), from Lemma 3 and 4, the
 
≤ RWik−2 = − RWik−2 following
 two conditions are satisfied:
Ti ∈BS k−2 Ti ∈AS k−2
(1) i mki ≤ (bk − bk−1 ) · m; and 
 (2) |ES k | ≥ (bk − bk−1 ) · m − i mki ;
< − RWik−1
After allocating mki , task Ti will belong to one of the
Ti ∈AS k−2
sets in the middle column of Figure 2. Below we consider
then, from last two equations, we will have: the four possible transitions (arrows from the middle sets to
the sets on the right):
  ∀Ti ∈ P AS k ∩ AS k , −1 < RWik = P Wik < 0;
k−1
RWi >− RWik−1
∀Ti ∈ P BS k ∩ AS k , −1 < RWik = P Wik − 1 < 0;
Ti ∈(BS k−1 −P W BS k−1 ) Ti ∈P AS k
∀Ti ∈ P BS k ∩ BS k , 0 < RWik = P Wik < 1;
Since (BS k−1 − P W BS k−1 ) ⊆ P BS k , we will have: ∀Ti ∈ P S k , RWik = P Wik = 0;
  Hence, ∀Ti , |RWik | < 1. Next,
k
P Wi ≥ k
P Wi  
RWi = k
(P Wi − oi )
k k
Ti ∈P BS k Ti ∈(BS k−1 −P W BS k−1 )
 
i i
> RWik−1 = (RWik−1 + (bk − bk−1 ) · wi − mki − oki )
∈(BS k−1 −P W BS k−1 )
 
Ti i

> − RWik−1 > − P Wik = 0 + (bk − bk−1 ) · m − (mki + oki );
Ti ∈P AS k Ti ∈P AS k i

 k k
that is i P Wik > 0, a contradiction.
Since  i (mi + oi ) = (bk − bk−1 ) · m, we will have, at
k
time bk , i RWi = 0.
So, both P W AS k−2 and P W BS k−2 are not empty.
Thus, the schedule generated by the BF algorithm in Al-
The same as before, we will get either:
gorithm 1 is boundary fair.
(i) ∀Tx ∈ P W AS k−2 , Tx ∈ P AS k−2 ; or ♦
(ii) ∀Ty ∈ P W BS k−2 , mk−2
y = bk−2 − bk−3 ; As we noted above, a boundary fair schedule maintains
fairness for tasks at the boundaries, which means that there
Continue the above steps to the boundary time bk−w , is no deadline miss and the BF algorithm generates a fea-
where ∀Ti , RWik−w = 0 (note that ∀Ti , RWi0 = 0). At sible schedule. Moreover, BF is optimal in the sense that it
that boundary we will have two non-empty sets P W BS utilizes 100% of each of the resources in a system.
and P W AS, which is a contradiction. 
Therefore, when allocating [k−1 , bk ), we have i mki ≤ 5. Evaluation
(bk − bk−1 ) · m.
♦ In this section, we will experimentally demonstrate the
 performance of our BF algorithm on reducing the num-
Lemma 4 If i wi = m and Algorithm 1 is followed at ber of scheduling points as well as the overall scheduling
boundary
 time b 0 , . . . , bk−1 and for v = 0, . . . , k − 1, overhead compared with that of the P D algorithm. Note
v v
i RWi = 0 and |RWi | < 1, then when allocating re- that P D [5] is more efficient than P F [4] and both of them
sources in [bk−1 , bk ), we have |ES k | ≥ (bk − bk−1 ) · m −
 make scheduling decisions at every time unit. Another algo-
k
i mi ; that is, the number of eligible tasks is no less than rithm, P D2 , improves on P D by using a simplified prior-
the number of remaining units (RU) to be allocated. ♦ ity comparison function which has two less parameters [3].

Proceedings of the 24th IEEE International Real-Time Systems Symposium (RTSS’03)


0-7695-2044-8/03 $ 17.00 © 2003 IEEE
50 80 3.5
scheduling points of BF vs. PD (%) 100 tasks per-BF
80 tasks 70 per-PD

overall cycles of PD over BF


60 tasks overall PD vs. BF

per-invocation cycles (103)


45 40 tasks 3
60
20 tasks

40 50 2.5
40
35 30 2

20
30 1.5
10

25 0 1
20 30 40 50 60 70 80 90 100 20 30 40 50 60 70 80 90 100
the maximum period the number of tasks

Figure 4. The number of scheduling points of Figure 5. The per-invocation and overall exe-
BF vs. P D cution time (in cycles) of BF and P D

However, both priority comparison functions have the same algorithms on the SimpleScalar micro-architecture simula-
complexity of O(1) and we do not expect P D2 can improve tor [7]. As mentioned before, to select k highest priority
on P D too much, especially when both of them are imple- tasks from n tasks, the task selection function can be im-
mented in O(n) where P D can effectively limit the search plemented in O(n) [6]. However, our implementation uses
space as discussed in this paper while P D2 cannot. a simple search technique with a complexity of O(k · n).
In our experiments, each task set contains 20 to 100 tasks For the P D algorithm, we implement its constant time
and the period for a task is uniformly distributed within the priority comparison function. To limit the search space of
minimum and maximum periods considered. The minimum the task selection function, tasks are first divided into 7 pri-
task period is set as 10. For each data point, we averaged ority categories [5] with the complexity of O(n); then the
the results for 100 randomly generated task sets. First, we tasks are selected from high priority category to low prior-
vary the maximum period from 20 to 100 and show the re- ity category; if not all tasks in a category can be selected,
duction of scheduling points of BF compared with P D. the O(k · n) task selection function is used within that cate-
The scheduling points for BF are the period boundaries of gory. In this way, we effectively reduced the number of pri-
all tasks which are independent of tasks’ resource require- ority comparison needed by the P D algorithm. While the
ment, while there are LCM scheduling points for P D. The complexity of implemented P D algorithm is still O(m · n),
results are shown in Figure 4; these results are conserva- where m is the number of resources, the results (see below)
tive since we discarded all task sets with LCM > 232 . are almost linear with the number of tasks.
From Figure 4, we can see that the number of schedul- Similarly, for BF , eligible tasks are first divided into 3
ing points of our BF algorithm varies from 25% to 48% of categories based on their characters (corresponding to  + ,
 
the P D algorithm. For a fixed maximum period, when there 0 and  − ) for the current boundary time. We implement
are more tasks in a task set, a time point is more likely to the constant time priority comparison function as described
be a period boundary and there are more scheduling points in Section 3 and the implemented BF algorithm has an
for BF . For a task set with fixed number of tasks, the pe- overall complexity of O(n2 ). Note that at most n − 1 op-
riods of tasks are more separated with higher maximum tional units need to be allocated per-invocation for BF .
period and thus there are less period boundaries and thus Figure 5 shows the execution time (in cycles) of each
scheduling points for BF . Even when there are 100 tasks scheduling instance. We fix the maximum period as 100
in a task set, BF has only 48% scheduling points compared and the resource requirement of a task (ci ) is uniformly dis-
with P D. For applications in real-time systems, tasks are tributed between 1 and its period (pi ); thus, on average, the
more harmonic than randomly generated task sets and more number of resources is around half of the number of tasks.
scheduling points reduction is expected. For example, in a From Figure 5 we can see that BF uses more cycles per-
harmonic task set, the number of scheduling points for BF invocation than P D (note that, the actual per-invocation cy-
is LCM/mini (pi ). In the future, we will characterize this cles of the implemented P D algorithm is almost linear with
issue more accurately. the number of tasks) and BF becomes worse as the number
Next, we compare the run-time overhead of our BF al- of tasks increases. However, as shown through the dotted
gorithm with that of the P D algorithm by running both line (which corresponds to the Y-axis on the right side of

Proceedings of the 24th IEEE International Real-Time Systems Symposium (RTSS’03)


0-7695-2044-8/03 $ 17.00 © 2003 IEEE
the figure), when the number of tasks is less than 100, BF unit to ensure proportional progress for all tasks at any time,
uses much less time to generate the whole schedule than our algorithm, boundary fair (BF ) scheduling, only makes
P D because of less scheduling points. For applications with scheduling decisions and maintains fairness for tasks at the
very large number of tasks and fewer number of resources, period boundaries, which effectively reduces the number of
the P D (especially, P D2 ) algorithm with a more efficient scheduling points as well as context switches compared to
implementation (with complexity of O(m lg n)) may out- that of the Pfair algorithms. Although the acutal reduction
perform BF by using less time to generate a schedule. of the scheduling points depends on the task sets, from our
However, realistic systems will have fewer than 100 tasks experiments, the number of scheduling points in the BF
and, furthermore, the schedule generated by BF incurs less algorithm is as little as 25% of that in Pfair algorithms.
context switches (see Figure 1 in Section 2). The complexity of BF is the same as that of the P F algo-
rithm [4] and a more efficient implementation with a con-
6. Closely Related Work stant time priority comparison function achieves compara-
ble complexity to that of the P D algorithm [5]. However,
Although much work has been done on multiple- by reducing the number of scheduling points, BF reduces
resource scheduling, we will focus on the related work the overall scheduling overhead, which is especially impor-
about Pfair scheduling. The first optimal solution for tant for on-line scheduling. The correctness of the BF algo-
the general periodic scheduling problem of multiple re- rithm to generate a boundary fair schedule is presented and
sources, P F [4], makes scheduling decisions at every an example is used to illustrate how BF algorithm works.
time unit and explicitly requires all tasks to make pro-
portional progress. By separating tasks as light (with References
task weight less or equal 50%) and heavy (with task
weight larger than 50%) tasks, a more efficient Pfair al- [1] J. Anderson and A. Srinivasan. Early-release fair schedul-
ing. In Proc. of the 12th Euromicro Conference on Real-Time
gorithm, P D, is proposed in [5]. A simplified P D algo-
Systems, Jun. 2000.
rithm, P D2 , uses two less parameters than P D to com-
[2] J. Anderson and A. Srinivasan. Pfair scheduling: Beyond pe-
pare the priorities of tasks [3], however, both of them have
riodic task systems. In Proc. of the 7th International Work-
the same with complexity of O(min{n, m lg n}). A vari- shop on Real-Time Computing Systems and Applications,
ant of Pfair scheduling, early-release scheduling, was pro- Dec. 2000.
posed in [1]. By considering intra-sporadic tasks, where [3] J. Anderson and A. Srinivasan. Mixed pfair/erfair schedul-
subtasks may be released later, the same authors pro- ing of asynchronous periodic tasks. In Proc. of the 13t h Eu-
posed another polynomial-time scheduling algorithm, romicro Conference on Real-Time Systems, Jun 2001.
EP DF , that is optimal on systems of one or two re- [4] S. K. Baruah, N. K. Cohen, C. G. Plaxton, and D. A. Varel.
sources [2]. Proportionate progress: A notion of fairness in resource allo-
The supertask approach [11] was first proposed to sup- cation. Algorithmica, 15(6):600–625, 1996.
port non-migratory tasks: tasks bound to a specific resource [5] S. K. Baruah, J. Gehrke, and C. G. Plaxton. Fast schedul-
are combined into a single supertask which is then sched- ing of periodic tasks on multiple resources. In Proc. of The
uled as an ordinary Pfair task. When a supertask is sched- International Parallel Processing Symposium, Apr. 1995.
uled, one of its component tasks is selected for execution [6] M. Blum, R. W. Floyd, V. R. Pratt, R. L. Rivest, and R. E.
using earliest deadline first policy. Unfortunately, the su- Tarjan. Time bounds for selection. Journal of Computer and
System Sciences, 7:448–461, 1973.
pertask approach cannot ensure all the non-migratory com-
[7] D. Burger and T. M. Austin. The simplescalar tool set, ver-
ponent tasks to meet their deadline even when the super-
sion 2.0. Technical Report 1342, Department of Computer
task is scheduled in a Pfair manner. To solve this problem, Science, University of Wisconsin-Madison, Jun. 1997.
[8] reconsiders this approach furnishing it with a reweight- [8] P. Holman and J. Anderson. Guaranteeing pfair supertasks
ing technique, which inflates a supertask’s weight to ensure by reweighting. In Proc. of the 22nd IEEE Real-Time Sys-
that its component tasks meet their deadlines if the super- tems Symposium, Dec. 2001.
task is scheduled in a Pfair manner. While this technique [9] C. L. Liu. Scheduling algorithms for multiprocessors in a
ensures that the supertask’s non-migratory component tasks hard real-time environment. JPL Space Programs Summary
meet their deadlines, some system utilization is sacrificed. 37-60, pages 28 – 37, Nov. 1969.
[10] R. McNaughton. Scheduling with deadlines and loss func-
tions. Management Science, 6:1–12, 1959.
7. Conclusion
[11] M. Moir and S. Ramamurthy. Pfair scheduling of fixed and
migrating tasks on multiple resources. In Proc. of the 20th
In this paper, we present a novel scheduling algorithm
IEEE Real-Time Systems Symposium, Dec. 1999.
for multi-resource systems. Unlike its predecessor, the Pfair
scheduling, which makes scheduling decisions at every time

Proceedings of the 24th IEEE International Real-Time Systems Symposium (RTSS’03)


0-7695-2044-8/03 $ 17.00 © 2003 IEEE

You might also like