A different type of bandwidth preserving server that is designed to eliminate the limitation of the deferrable server is called sporadic server. It has more complex consumption and replenishment rules ensure that a sporadic server with period pS and budget e S never demands more processor time than a periodic task with the same parameters. Consider a system T of N independent preemptable periodic tasks, plus a single sporadic server task with parameters (ps, e s) then
- T H is the subset of periodic tasks with higher priorities than the
- t r defines the last time the server budget replenished.
- tf defines the first instant after t r at which the server begins to execute.
- te denotes the latest effective replenishment time.
- At any time t define:
- BEGIN as the start of the earliest busy interval in the most recent contiguous sequence of busy intervals of T H starting before
- END as the end of the latest busy interval in this sequence if this interval ends before t; define END = ∞ if the interval ends after t.
The consumption and replenishment rules be stated as:
Consumption rule
- At any time t after t r , server’s budget is consumed at the rate of 1 per unit time until the budget is exhausted when either one of following two conditions is true.
C1: The server is executing
C2: The server has executed since t r and END < t
- When they are not true, the server holds its budget Replenishment rules
R1: When system begins executing and budget is replenished as:
Budget = e S and t r = the current time.
R2: When server begins to execute i.e. at time tf do if END = tf then
t e = max(t r, BEGIN ) else if END < tf then t e = tf
The next replenishment time is set to t e + p S.
R3: The next replenishment occurs at the next replenishment time (= t e + p S), except under the following conditions:
- If t e + pS is earlier than tf the budget is replenished as soon as it is exhausted
- If T becomes idle before t e + pS, and becomes busy again at t b, the budget is replenished at min(t b, t e + pS)
For example:
Consider, the budget of the server (5, 1.5) is 1.5 initially. It is scheduled rate-monotonically with three periodic tasks: T1 = (3, 0.5), T2 = (4, 1.0), and T3 = (19, 4.5). They are schedulable even when the aperiodic job queue is busy all the time. Here the priority order be maintained as: T1>T2>Ts>T3 where TH= (T1, T2)
- From time 0 to 3, the aperiodic job queue is empty and the server is Since it has not executed, its budget stays at 1.5. At time 3, the aperiodic job A1 with execution time 1.0 arrives; the server becomes ready. Since the higher-priority task (3, 0.5) has a job ready for execution, the server and the aperiodic job wait.
- The server does not begin to execute until time 3.5. At the time, tr is 0, BEGIN is equal to 3, and END is equal to 3.5. According to rule R2, the effective replenishment time te is equal to max(0, 3.0) = 3, and the next replenishment time is set at 8.
- The server executes until time 4; while it executes, its budget decreases with
- The server does not begin to execute until time 3.5. At the time, tr is 0, BEGIN is equal to 3, and END is equal to 3.5. According to rule R2, the effective replenishment time te is equal to max(0, 3.0) = 3, and the next replenishment time is set at 8.
- The server executes until time 4; while it executes, its budget decreases with time.
- At time 4, the server is preempted by While it is preempted, it holds on to its budget.
- After the server resumes execution at 5, its budget is consumed until exhaustion because it executes (C1) and then, when it is suspended again, T1 and T2 are idle (or equivalently, END, which is 5.0, is less than the current time) (C2).
- When the aperiodic job A2 arrives at time 7, the budget of the server is exhausted; the job waits in the queue.
- At time 8, its budget replenished (R3), the server is ready for execution again.
- At time 9.5, the server begins to execute for the time since 8. te is equal to the latest replenishment time Hence the next replenishment time is 13. The server executes until
its budget is exhausted at 11; it is suspended and waits for the next replenishment time. In the meantime, A2 waits in the queue.
- Its budget replenished at time 13, the server is again scheduled and begins to execute at time 5. This time, the next replenishment time is set at 18. However at 13.5, the periodic task system T becomes idle. Rather than 18, the budget is replenished at 15, when a new busy interval of T begins, according to rule R3b.
- The behavior of the later segment also obeys the above-stated In particular, rule R3b allows the server budget to be replenished at 19.