Hardware Reference
In-Depth Information
priorities and can be set according to the application requirements. Thus, a control
task can have a higher priority than a device handling task.
The idea behind this approach is schematically illustrated in Figure 1.3. The occur-
rence of event E generates an interrupt, which causes the execution of a driver asso-
ciated with that interrupt. Unlike the traditional approach, this driver does not handle
the device directly but only activates a dedicated task, J E , which will be the actual
device manager.
Driver associated
Task J
E
with event E
event E
Activation
Handling
of task
of event
J
E
E
Figure 1.3
Activation of a device-handling task.
The major advantage of this approach with respect to the previous ones is to eliminate
the busy wait during I/O operations. Moreover, compared to the traditional technique,
the unbounded delays introduced by the drivers during tasks' execution are also drasti-
cally reduced (although not completely removed), so the task execution times become
more predictable. As a matter of fact, a little unbounded overhead due to the execu-
tion of the small drivers still remains in the system, and it should be taken into account
in the guarantee mechanism. However, it can be neglected in most practical cases.
This type of solution is adopted in the ARTS system [TK88, TM89], in HARTIK
[BDN93, But93], and in SPRING [SR91].
1.3.4
SYSTEM CALLS
System predictability also depends on how the kernel primitives are implemented. In
order to precisely evaluate the worst-case execution time of each task, all kernel calls
should be characterized by a bounded execution time, used by the guarantee mecha-
nism while performing the schedulability analysis of the application. In addition, in
order to simplify this analysis, it is desirable that each kernel primitive be preempt-
able. In fact, any non-preemptable section could possibly delay the activation or the
execution of critical activities, causing a timing fault to hard deadlines.
Search WWH ::




Custom Search