Verimag laboratory (http://www-verimag.imag.fr/ ) offers to highly qualified students two Ph.D. scholarships for research on Adaptive Component-based Systems and on Memory Management for Component-based Systems (see description below).

Candidates should send their CV and motivation letter to Dr. Joseph Sifakis (Joseph.Sifakis@imag.fr , http://www-verimag.imag.fr/ sifakis/ )

Adaptive Component-based Systems

Systems must provide a service meeting given requirements in interaction with uncertain and unpredictable environments. Uncertainty is characterized as the difference between average and worst-case system behavior. It is drastically increasing due to 1) interaction with complex, non-deterministic, possibly hostile external environments; 2) execution platforms with sophisticated HW/SW architectures (layering, caches and speculative execution).

For complex systems it is impossible to foresee at design time by a case-by-case analysis all the potentially critical situations. Adaptivity is the capacity of a system to meet given requirements including safety, security, and performance, in the presence of uncertainty in its external or execution environment.

Adaptive systems use controllers that monitor the execution of an application and drive its behaviour so as to meet given objectives related to resource management. Controllers combine three hierarchically structured features: 1) planning for achieving a given objective; 2) objective management, for choosing amongst possible objectives; 3) learning for adjusting parameters of the controlled application.

The aim is to investigate adaptive techniques for the BIP (Behaviour, Interaction, Priority) component framework. BIP supports a component construction methodology based on the assumption that components are obtained as the superposition of three layers: (1) behavior, expressed in terms of extended automata, (2) interactions, describing the cooperation between actions of the behaviour and (3) priorities, rules specifying scheduling policies for interactions. Layering allows a clear separation between behaviour and architecture (connectors and priority rules).

The work plan includes the following directions:
- Study of adaptive architectures for component-based systems and for BIP in particular;
- Design of adaptive systems for resource management in BIP. These systems use controllers that optimize a resource such as memory, energy or CPU time so as to meet given quality of service requirements.
- Study of efficient implementation techniques that reduce the overhead due to adaptive control.

Memory Management for Component-based Systems

Memory management has become an extremely important factor for designing and implementing performant and energy-efficient embedded applications. There are multiple reasons closely related to the execution platform. For instance, the memory organization and memory model enforced by the platform influence directly the execution time for any basic memory operation. In addition, the amount of available memory may also directly enable/limit the concurrency allowed by particular applications e.g., pipeline or data-flow applications requiring buffering of intermediate results. Finally, a considerable impact is due to the programming and memory model used at the application level. The memory model together with the programming primitives used to coordinate concurrent execution (e.g., locks, atomic sections, transactions, etc.) heavily influences the compilation and deployment of the application onto the platform. In particular, the placement of data into memory, the insertion of additional memory copy operations, if needed, etc are usually decided at compile time.

The aim is to investigate memory management techniques for the BIP (Behaviour, Interaction, Priority) component framework. BIP supports a component construction methodology based on the assumption that components are obtained as the superposition of three layers: (1) behavior, expressed in terms of extended automata, (2) interactions, describing the cooperation between actions of the behaviour and (3) priorities, rules specifying scheduling policies for interactions. Layering allows a clear separation between behaviour and architecture (connectors and priority rules).

BIP tacitly assumes a private memory model for atomic components. Data are private/local to atomic components and never shared between them. This assumption confers several advantages for constructing and reasoning about systems in BIP. First of all, it achieves a separation of concerns between local computation and interaction/communication between components. This is essential for reliable component-based design, as it allows stand-alone component development. Furthermore, a private memory model ensures maximal parallelism between atomic components. Nevertheless, the advantages of the private memory model come with a potential overhead for communication of data between components. In the absence of data sharing, successive operations on the same data require an explicit deep copy/transfer of data, if the operations are implemented on different atomic components. Such data transfers may be very time consuming, in particular for big/complex data structures. In addition, having long computations taking place on interactions may drastically decrease the parallelism within the system. This is because all the components involved in an interaction must wait for it to complete, before resuming their internal computations.

The work aims at studying techniques for transforming BIP models into functionally equivalent SM-BIP models (Shared-Memory models). These are models where atomic components are allowed to own and use temporarily, data placed in a designated/predefined Shared-Memory component.

(c) Artist Consortium, All Rights Reserved - 2006, 2007, 2008, 2009

Réalisation Axome - Création de sites Internet