Hardware Reference
In-Depth Information
Another important component of the Generic Kernel is the Job Execution Time (JET)
estimator, which monitors the computation time actually consumed by each job. This
mechanism is used for statistical measurements, resource accounting, and temporal
protection.
The API is exported through a set of Libraries , which use the Generic Kernel to sup-
port some common hardware devices (i.e., keyboard, sound cards, network cards, and
graphic cards). They provide a compatibility layer with the POSIX interface (POSIX
1003.13 PSE52) to simplify porting of applications developed for other POSIX com-
pliant kernels.
Independence between applications and scheduling algorithms is achieved by intro-
ducing the notion of task model . Two kinds of models are provided: Task Models
and Resource Models. A task model expresses the QoS requirements of a task for
the CPU scheduling. A resource model is used to define the QoS parameters relative
to a set of shared resources used by a task. For example, the resource model can be
used to specify the semaphore protocol to be used for protecting critical sections (e.g.,
Priority Inheritance, Priority Ceiling, or SRP). Requirements are specified through a
set of parameters that depend on the specific models. Models are used by the Generic
Kernel to assign a task to a specific module.
Task creation works as follows (see Figure 12.3): when an application issues a request
to the kernel for creating a new task, it also sends the model describing the requested
QoS. A kernel component, namely the model mapper , passes the model to a module,
selected according to an internal policy, and the module checks whether it can provide
the requested QoS; if the selected module cannot serve the task, the model mapper
selects a different module. When a module manages the task described by the spec-
ified model, it converts the model's QOS parameters into the appropriate scheduling
parameters. Such a conversion is performed by a module component, called the QoS
Mapper .
SCHEDULING MODULES
Scheduling Modules are used by the Generic Kernel to schedule tasks, or serve aperi-
odic requests using an aperiodic server. In general, the implementation of a schedul-
ing algorithm should possibly be independent of resource access protocols, and handle
only the scheduling behavior. Nevertheless, the implementation of an aperiodic server
relies on the presence of another scheduling module, called the Host Module (for ex-
ample, a Deferrable Server can be used if the base scheduling algorithm is RM or
EDF, but not Round Robin). Such a design choice reflects the traditional approach
followed in the literature, where most aperiodic servers insert their tasks directly into
Search WWH ::




Custom Search