We want to find a close upper bound on the contribution of
each task
to the demand in a particular window of time. We
have bounded the contribution to
of the head of the window. We
are now ready to derive a bound on the whole of
, including
the contributions of head, body, and tail for the EDF case.
The tail of a window with respect to a task is the
final segment, beginning with the release time of the carried-out
job of
in the window (if any). The carried-out job has
a release time within the window and its next
release time is beyond the window. That is, if the release time of the
carried-out job is
,
. If there is no
such job, then the tail of the window is null. We use the symbol
to denote the length of the tail, as shown in
Figure 2.
The body is the middle segment of the window, i.e., the portion that is not in the head or the tail. Like the head and the tail, the body may be null (provided the head and tail are not also null).
Unlike the contribution of the head, the contributions of the body and tail
to do not depend on the schedule leading up to the window. They
depend only on the release times within the window,
which in turn are constrained by the period
and by the release time of the carried-in job of
(if any).
Let be the number of jobs of
released in the body and tail.
If both body and tail are null,
,
, and
the contribution of the body and tail is zero.
Otherwise, the body and or the tail is non-null, the combined length of the
body and tail is
, and
.
Proof:
We will identify a worst-case situation, where achieves the
largest possible value for a given value of
. For
simplicity, we will risk overbounding
by considering a wide
range of possibilities, which might include some cases that would
not occur in a specific busy window.
We will start out by looking only at the case where
,
then go back and consider later the case where
.
Looking at Figure 4, it is easy to see that the
maximum possible contribution of the body and tail to is
achieved when successive jobs are released as close together as
possible. Moreover, if one imagines shifting all the release
times in Figure 4 earlier or later, as a block,
one can see that the maximum is achieved when the last job is
released just in time to have its deadline coincide with the end
of the window. That is, the maximum contribution to
from the
body and tail is achieved when
. In this case there
is a tail of length
and the number of complete executions of
in the body and tail is
.
From Lemma 9, we can see that the contribution
of the head to
is a nonincreasing function of
.
Therefore,
is maximized when
is as small as
possible. However, reducing
increases the size of the head,
and may reduce the contribution to
of the body and tail.
Looking at Figure 4, we see that the
length of the head, , cannot be
larger than
without pushing all of the final
execution of
outside the window. Reducing
below
results in at most a linear
increase in the contribution of the head, accompanied by a
decrease of
in the contribution of the body and tail.
Therefore the value of
is maximized
for
.
We have shown that
It is now time to consider the case where .
There can be no body or tail contribution, since it is
impossible for a job of
to have both release time and
deadline within the window. If
is nonzero, the only
contribution can come from a carried-in job. Lemma 9
guarantees that this contribution is at most
,
For
we have
Proof:
The objective of the proof is to find an upper bound for
that is independent of
.
Lemma 10 says that
There are two cases:
Case 1:
.
We have
, and
.
Since we also know that
, we have
.
From the definition of
, we have
Case 2:
.
We have
. Since
,
We have two subcases, depending on the sign of
.
Case 2.1:
. That is,
.
From the definition of , it follows that
Case 2.2:
. That is,
.
From the definition of , it follows that
Using the above lemmas, we can prove the following theorem, which provides a sufficient condition for schedulability.
Proof: The proof is by contradiction. Suppose some task misses a deadline. We will show that this leads to a contradiction of (1).
Let be the first
task to miss a deadline and
be a busy window for
, as in Lemma 7.
Since
is
-busy
we have
. By
Lemma 11,
, for
.
Since
is the first missed deadline, we know that
.
It follows that
The schedulability test above must be checked individually for
each task . If we are willing to sacrifice some precision,
there is a simpler test that only needs to be checked once for
the entire system of tasks.
Sketch of proof:
Corollary 13 is proved by repeating the proof of
Theorem 12, adapted to fit the definitions of
and
.
Goossens, Funk, and Baruah[8] showed the following:
Their proof is derived from a theorem in [7], on
scheduling for uniform multiprocessors, which in turn is
based on [16]. This can be shown independently as
special case of Corollary 13,
by replacing by
.
The above cited theorem of Goossens, Funk, and Baruah is
a generalization of a result of Srinivasan and Baruah[18],
who defined a periodic task set
to
be a light system on
processors if it satisfies the
following properties:
They then proved the following theorem.
The above result is a special case of Corollary 14,
taking
.