Hardware Reference
In-Depth Information
8.5.2
LONGEST NON-PREEMPTIVE INTERVAL
As done in Section 8.4.2 under deferred preemptions, it is interesting to compute,
also under task splitting, the longest non-preemptive interval
Q
i
for each task
τ
i
that
can still preserve the schedulability. It is worth observing that splitting tasks into
subjobs allows achieving a larger
Q
i
, because a task
τ
i
cannot be preempted during
the execution of the last
q
last
i
units of time.
If tasks are assumed to be preemptively feasible, for Theorem 8.1 the analysis can be
limited to the first job of each task. In this case, a bound on the blocking tolerance
β
i
can be achieved using the following schedulability condition [YBB10a]:
∈TS
i
W
i
(
t
)
∃
t
:
B
i
≤{
t
−
}
,
(8.34)
where
W
i
(
t
) and the testing set
TS
i
are defined as
t
T
h
+1
C
h
,
+
h
:
P
h
>P
i
W
i
(
t
)=
C
i
−
q
last
i
(8.35)
de
=
TS
i
q
last
i
P
i−
1
(
D
i
−
)
(8.36)
where
P
i
(
t
) is given by Equation (4.22).
Rephrasing Equation (8.34), we obtain
W
i
(
t
)
B
i
≤
t∈T S
∗
(
τ
i
)
{
max
t
−
}
.
W
i
(
t
)
β
i
=m x
t∈T S
∗
(
τ
i
)
{
t
−
}
.
(8.37)
The longest non-preemptive interval
Q
i
that preserves feasibility for each task
τ
i
can
then be computed by Theorem 8.2, using the blocking tolerances given by Equa-
tion (8.37). Applying the same substitutions, the algorithm in Figure 8.12 can also
be used under task splitting.
As previously mentioned, the maximum length of the non-preemptive chunk under
task splitting is larger than in the case of deferred preemptions. It is worth pointing
out that the value of
Q
i
for task
τ
i
only depends on the
β
k
of the higher priority tasks,
as expressed in Equation (8.22), and the blocking tolerance
β
i
is a function of
q
last
i
,
as clear form equations (8.35) and (8.37).
Search WWH ::
Custom Search