This work package is concerned with the development of the concept of resource-aware abstraction using resource interfaces and its application to several cross-layer issues. Resource interfaces of software components will allow for composition and formal verification of nonfunctional properties and for their combination in a resource network.
So far, component interfaces mainly talk about (static) data types or about behavioural types that characterise the sequence of component activations, e.g. using (timed) automata. In terms of resource-aware abstraction this is not sufficient; neither the constraints on resource usage can be communicated to a component nor can its actual resource usage be exported by the component. For example, the resource may be used up or it may be left more or less fragmented for other components, or the component may show different delay properties depending on the kind or pattern of component activation. Therefore, it is necessary to make resources and their usage first class citizens of component interfaces.
The anticipated result is the possibility to connect the resource-aware interfaces of a set of (distributed) components. Interface calculations will then reveal, whether these software components can work together properly in terms of global system properties such as end-to-end delay and buffer space usage.
The principle of resource-aware abstraction will be applied to all system layers in order to:
Concrete applications concern interactions between the scheduling and I/O handling, the influence of scheduling on energy consumption and the effects of virtual memory on the predictability.