A Component-based Run-time Evolution Infrastructure for Resource ...

3 downloads 1516 Views 2MB Size Report
Resource-constrained Embedded. Systems. Juan F. ... Increasing number of actors in software development projects, increasing number of required features ...
A Component-based Run-time Evolution Infrastructure for Resource-constrained Embedded Systems   GPCE  @  Eindhoven   2010  -­‐  10  -­‐  11  

Juan  F.  Navas   Jean-­‐Philippe  Babau   Jacques  Pulou  

research  context   needs   Complexity management Increasing number of actors in software development projects, increasing number of required features, capitalization of previously acquired knowledge…

research  context   needs   Complexity management Evolution Bugs corrections, software maintenance and upgrade, execution-time adaptation to unpredicted operating contexts and/or user preferences…

research  context   needs   Complexity management Evolution

Resource-awareness Physical size, processing power, memory and energy consumption…

research  context   answers  ::  complexity   Component-­‐ based   approaches  

SeparaDon   of  concerns  

Components   reuse  

Industrial   adopDon  

…  

TODO List :! Complexity OK! Evolution! Resources!

research  context   answers  ::  evoluDon   •  Dynamic linking of modules [1,2] Granularity of evolution vs. memory occupancy and transmission costs trade-off.

•  Virtual Machine (VM) approach [3,4] Permanent execution of a VM or an interpreter degrades execution performance : memory occupancy, execution times…

•  Evolution-aware design [5,6,7] Components providing evolution related functionalities

TODO List :! Complexity OK! Evolution OK! Resources ?!

research  context   answers  ::  evoluDon  

+48%   +88%  

+2,2%  

TODO List :! Complexity OK! Evolution OK! Resources NOK!

research  context   answers  ::  resources   •  Aggressive optimization of code generation [8] Produces low-footprint versions of architectural component-based designs. However, those are rigid and do not allow run-time modifications of system structure and behavior. Partially-flexible versions may be generated, but what about unpredicted evolution scenarios ?

TODO List :! Complexity OK! Evolution NOK! Resources OK!

research  context   answers  

Evolution richness vs. Resources usage trade-off

proposal  basis   What if we treat evolution aspects off-site (i.e. in a remote machine) ? Alleviate the workload to be processed by the embedded processor Meta-data reduction  memory occupancy Richer programming environments

We need : •  A coherent mirror image of running architecture •  To control the whole development process, from Design to Execution phases, and particularly the generation of “glue” code

proposal  outline  

I.  Components II.  Reifications and Mirrors III.  Evolution Infrastructure IV. Evaluation

components  

Fractal  Component  Model   Reflective Interfaces Attributes ATTR. NAME

Provided Server Interfaces

Required Client Interfaces COMP. NAME

Component models define a set of evolution points •  Add/remove components •  Modify bindings directions •  Changing attributes values

components  

Think  framework   IDL : bsp.api.sound

ADL : sound component sound { attribute int MIN_BEEP_TIME provides api.LCC as lcc provides bsp.api.sound as sound

package bsp.api; public interface sound { void beep_async(INT32U freq, INT32U ms, INT8U vol); void beep(INT32U freq, INT32U ms, INT8U vol); }

C : bsp.lib.sound.sound.c requires uCOS.api.Lock as lock requires uCOS.api.Delay as delay requires irq.api.nxtirq as irq content bsp.lib.sound.sound }

MIN_BEEP_T

lcc sound

sound

lock

// @@ ServerMethod(sound, beep_async) @@ void beep_async(INT32U freq, INT32U ms, INT8U v) { if(ms >= MIN_BEEP_TIME) { *AT91C_SSC_CMR = ((96109714 / 1024) / freq) + 1; tone_cycles = (freq * ms) / 2000 - 1; volume = v; *AT91C_SSC_IER = AT91C_SSC_ENDTX; *AT91C_SSC_PTCR = AT91C_PDC_TXTEN; } }

delay irq

Design-­‐Dme  

components  

Think  framework  

BC AC

MIN_BEEP_T

lcc sound

sound

ExecuDon-­‐Dme  

lock delay irq

reificaDons  &  mirrors  

components  reificaDons   We call a component reification the representation of a component at a given stage of the life-cycle model: reifications are collections of data and behaviors encapsulating certain aspects of a component at a given stage of development process MIN_BEEP_TIME

lcc sound

sound

lock delay irq

ADL, IDL, C … ?

?

?

Memory binary regions System Life-Cycle

Design

Compile

Deployment

Activation

Execution

reificaDons  &  mirrors  

mirrors  

BC AC

MIN_BEEP_T

MIN_BEEP_T

lcc

sound

Mirror component BC AC

MIN_BEEP_T

lcc sound

sound

lock delay irq

Sound component at Execution-time

sound

sound

lock delay irq

Embedded reification

reificaDons  &  mirrors  

mirrors  

Mirror components are Fractal components •  They provide evolution interfaces •  Introspection : subcomponents and Interfaces information •  Intercession : bindings and attribute values modification

•  They require services to read and write into embedded memory regions •  byte[] read (BinAddress add, int size) •  void write (BinAddress add, int size, byte[] data)

reificaDons  &  mirror  components  

mirror  components  

How mirror components map component-model entities (attributes, bindings…) with embedded memory addresses ?

This requires a full control of compilation, deployment and activation stages of components life-cycle

evoluDon  infrastructure  

execuDon-­‐Dme  components  

evoluDon  infrastructure  

execuDon-­‐Dme  components  

•  Evolution Agent A task waiting for evolution messages to be parsed and an interface to functional components’ mirrors

evoluDon  infrastructure  

execuDon-­‐Dme  components  

•  Evolution Agent •  Communication Device Media-agnostic communication component (e.g. USB)

evoluDon  infrastructure  

execuDon-­‐Dme  components  

•  Evolution Agent •  Communication Device •  Memory management Its implementation will depend on system deployment policies

evaluaDon  

hardware  &  soUware  plaVorm  

•  Lego Mindstorms NXT •  LCD, USB, Bluetooth, multiple sensors, motors… •  Atmel ARM7, 32-bits, 48MHz processor

•  Component-based version of µC/OS-II Real-Time OS [6]

evaluaDon  

evoluDon  operaDons  exec.  Dme  

evaluaDon  

evoluDon  infrastructure  size  

evaluaDon  

case  study  

+6,7%  

-­‐27%   +46%  

summary   We vary the location of evolution-related operations treatment to fulfill resource constraints We keep a minimal evolution infrastructure inside the device

Evolution planning and execution is done through run-time mirror architectures Mirror components are generated at compile-time

Component-based nature of our solution eases porting to other hardware platforms Predefined interfaces and reifications’ information exchange policies

quesDons  ?  

thank you

quesDons  ?   [1] Dunkels A. et al. Contiki - a Lightweight and Flexible Operating System for Tiny Networked Sensors. 2004. [2] W. Munawar, M. H. Alizai, O. Landsiedel, and K. Wehrle. Dynamic TinyOS: Modular and transparent incremental code-updates for sensor networks. 2010. [3] Müller R. et al. A Virtual Machine for Sensor Networks. 2008. [4] Brouwers, N. et al. Darjeeling, A Java Compatible Virtual Machine For Microcontrollers. 2008. [5] Polakovic, J. et al. Experience with Implementing Safe Reconfigurations in Component-Based Embedded Systems. 2007. [6] Loiret, F. Navas, J. Babau, JP. Lobry, O. Component-Based Real- Time Operating System for Embedded Applications. 2009. [7] Navas, J. Babau JP. Minimal yet Effective Reconfiguration Infrastructures in Component-Based Embedded Systems. 2009. [8] Lobry, O. Navas, J. Babau, JP. Optimizing component-based embedded software. 2009.

Suggest Documents