Resource management components include:
QoS Manager:
The problem of finding a correct allocation of bandwidth to
the different tasks is still to be considered as a tough problem.
It implements a dynamic adjustment of the bandwidth,
in which a software module complementary to the scheduler
collects QoS measures for the executing tasks and varies the
assigned bandwidth accordingly. A key advantage of this idea
is that the system is self-tuning: the user is not required
to provide parameters he/she has little knowledge of.
Feedback scheduling:
One of the biggest problems of CPU reservation systems is
the selection of the fraction (or bandwidth) of the CPU assigned
to each task. To cope with this problem, many authors proposed
the use of feedback control mechanism inside the operating
system. A task (process) that wants to use the QoS services,
will have to send a "request" to the module. The
request can be accepted or refused. In case it is accepted,
the service will be guaranteed.
There will be two classes of service: guaranteed service,
and best-effort service. In the guaranteed class, a task has
to specify its temporal parameters as an initial contract.
This request can be accepted, if there are enough resources
to guarantee a minimum amount of service, or refused in case
there is not enough bandwidth. The task can optionally specify
a "responsiveness parameter", which represents the
level of responsiveness of the feedback controller.
In the best-effort service class, a task is always accepted
unless the system is in permanent overload situation. Clearly,
it will recieve an acceptable service (i.e. enough bandwidth)
only when the system load is below a threshold.
IRIS constant bandwith server:
This server policy guarantees to a task the use of a fraction
(budget) of the CPU each period. When the budget is exhausted,
the task is blocked until the next period if there are other
tasks ready in the system. As soon as the CPU is idle, the
next period is shrinked.
|