Another fundamental difference between the Proportional Share paradigm
and the Constant Bandwidth paradigm is that the former allocates the
resources in time quanta, while the latter does no require so (it is fully
preemptive). This makes Proportional Share easier
to implement in a conventional operating system (such as Unix or Windows),
whose scheduler is quantum-based, but introduces some limitations: for
example, tasks can be activated only at quantum
boundaries and tasks' periods must be multiple of Q. Moreover, a
quantum-based allocation algorithm causes an overhead (an interrupt is
generated at each quantum boundary) and a larger allocation error. This
error results in the lag: if it is bounded, it is possible to perform an
hard deadline guarantee at the cost of a bandwidth waste.
The admission test becomes
The fairness property enforced by Proportional Share schedulers generates
a larger number of preemptions, as shown in Figure 2, and the
performance of the system can be penalized by the additional preemption
overhead (in a real system, context switches could take some time!).
In general, a Proportional Share algorithm causes a preemption at
each tick: if
is the time needed to perform a context switch, the
context-switch overhead can be expressed as
,
so the
admission test becomes
Another problem with the Proportional Share paradigm is that it does not model event-based systems intuitively. For example, a task activated by an external event (a task that manages data from the network, or that have to respond to an interrupt) can only be modeled as a periodic task, and it is not clear how to assign the weight or the share to this task. On the other hand, using CBA, we can reserve a given bandwidth to an aperiodic event-driven task and use the server parameter Ts to model the expected interarrival time. Using a CBS to serve the task, it is also simple to perform a deterministic or stochastic guarantee on the response time.