Hardware Reference
In-Depth Information
factors of tasks that do not use nested critical sections. In this case, in fact, Lemma 7.2
guarantees that no transitive inheritance can occur; thus, the analysis of all possible
blocking conditions is simplified.
Using the terminology introduced in Section 7.3, in the absence of transitive blocking,
the set γ i
of critical sections that can block a task τ i can be computed as follows:
1. The set of semaphores that can cause direct blocking to τ i , shared by the lower-
priority task τ j ,is
σ dir
i,j
= σ i
σ j .
2. The set of semaphores that can cause push-through blocking to τ i , shared by the
lower-priority task τ j ,is
=
h : P h >P i
σ pt
i,j
σ h
σ j .
3. The set of semaphores that can block τ i
(either directly or by push-through),
shared by the lower-priority task τ j ,is
=
h : P h ≥P i
σ pt
i,j
= σ dir
σ i,j
i,j
σ h
σ j .
4. The set of the longest critical sections used by τ j
that can block τ i (either directly
or by push-through) is then
γ i,j =
{
Z j,k
|
( P j <P i ) and ( R k
σ i,j }
.
5. The set of all critical sections that can block τ i
(either directly or by push-
through) is
=
j : P j <P i
γ i
γ i,j .
6. B i is then given by the largest sum of the lengths of the α i critical sections in
γ i . Note that since τ i cannot be blocked twice by the same task or by the same
semaphore, the sum should contain only terms δ j,k
referring to different tasks
and different semaphores.
Unfortunately, even without considering nested resources, the exact computation of
each blocking factor requires a combinatorial search for finding the largest sum among
all possible α i durations. A simpler upper bound, however, can be computed according
to the following algorithm:
Search WWH ::




Custom Search