Fixed Priority Servers
Last updated
Last updated
This fixed priority server is completely equivalent to the execution of a periodic task. The aperiodic requests are served only during the execution intervals granted to the server by the periodic task scheduler.
E.g. Polling server with (C , T ) = (1, 4)
The implementation of a polling server is relatively simple. It only requires a queue for the aperiodic requests and control of the capacity used.
The average response time to aperiodic requests is better than the one obtained with background execution, since it is possible to elevate the priority of the server. However it has relatively long unavailability periods.
The impact on the periodic task set is exactly the same as the one of a periodic task.
The previous test (Liu & Layland bound) is independent of the utilization of each task. It is possible to improve the test (i.e. obtain tighter bounds).
Let Up and Us be the utilization factors of the periodic task set and polling server, resp.
The basic idea of this fixed-priority server is to handle aperiodic requests from the beginning of its execution until:
End of its period (TS) or
Its capacity (CS) gets exhausted.
The capacity is replenished at the beginning of each period.
E.g. Deferrable server with (C , T ) = (1, 4)
Simple implementation (similar to a PS).
The average response time to aperiodic requests is improved with respect to the PS, since it is possible to use the capacity of the DS during the whole period, provided that its capacity is not exhausted.
However, there is a negative impact on the schedulability of the periodic tasks. The reason for this impact is that the delayed executions increase the load on the future. E.g., it is possible having two consecutive executions (back-to-back execution).
Illustration of a scenario in which replacing a periodic task by a DS causes deadline misses.
Periodic tasks.
Task 1 replaced by a DS.
The basic idea of this fixed-priority server is also allow the execution of the server at any instant (as the DS), however without penalizing the schedulability of the periodic system (as the PS).
The SS replenishes the capacity not at the end of the period but instead according with the time instants in which the capacity is actually used.
Definitions:
SS active : the server or hep(SS) tasks are executing
SS idle : processor idle or lp(SS) task executing
RT/RA : replenishing time/amount
Replenishment rules:
RT is set when SS becomes active and Cs > 0 (tA).
RA is computed when the SS becomes idle or Cs is exhausted (tI ). RA is the capacity used in the interval [ta , tI ]
Sporadic server: SS : Cs = 5, Ts = 10
Priority assignment: RM (thus Pr (τ1 ) > Pr (τs ) > Pr (τ2 ))
The implementation complexity of a sporadic server is higher than the one of PS and DS, due to the computation of the replenishment instants and, more importantly, to the complex timer management.
The average response time to aperiodic requests is similar to the one of the DS.
The impact on the schedulability of the periodic tasks is exactly the same as the one of the PS.
The SS executes as soon as it has capacity, but the technique used to replenish the capacity preserves the timing behavior and bandwidth (unlike the DS).