60
Mise en œuvre d'un Mise en œuvre d'un outil d'aide au outil d'aide au développement d'une JVM développement d'une JVM modulaire pour système modulaire pour système embarqué embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet Solidor

Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

Embed Size (px)

Citation preview

Page 1: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

Mise en œuvre d'un outil d'aide au Mise en œuvre d'un outil d'aide au développement d'une JVM développement d'une JVM modulaire pour système embarquémodulaire pour système embarqué

Olivier DERUELLE

Erwan FOUYER

Maxime JOUIN

Rodolphe LOUE

Projet Solidor

Page 2: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

2

Plan de la présentationPlan de la présentation

IntroductionIntroduction 1 - Présentation1 - Présentation 2 - Objectifs2 - Objectifs 3 - Mise en œuvre3 - Mise en œuvre 4 - Perspectives4 - Perspectives ConclusionConclusion

Page 3: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

3

Plan de la présentationPlan de la présentation

IntroductionIntroduction 1 - Présentation1 - Présentation 2 - Objectifs2 - Objectifs 3 - Mise en œuvre3 - Mise en œuvre 4 - Perspectives4 - Perspectives ConclusionConclusion

Page 4: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

4

Introduction Introduction (1/3)(1/3)

Les systèmes embarqués :un monde en plein essor

- Applications multimédia

- Télécommunications

- Chargement dynamique d’applications

Page 5: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

5

Introduction Introduction (2/3)(2/3)

La solution :le mécanisme de la JVM

- supporte le chargement dynamique d’applications- nouveau standard dans l’industrie

- nombreuses applications

déjà disponibles

Page 6: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

6

Introduction Introduction (3/3)(3/3)

Mais l’embarqué impose ses contraintes :

imposeCPU Mémoire

Énergie

Optimisation des ressources

JVM adaptée

Page 7: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

7

Plan de la présentationPlan de la présentation

IntroductionIntroduction 1 - Présentation1 - Présentation 2 - Objectifs2 - Objectifs 3 - Mise en œuvre3 - Mise en œuvre 4 - Perspectives4 - Perspectives ConclusionConclusion

Page 8: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

8

1 - Présentation 1 - Présentation (1/5)(1/5)

SDE

Gestionnairede types

Projectionen C

Implémentation

Spécification

Source & Glue

Fonctionnement

Général

Langage

C

Page 9: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

9

Interface de SDEInterface de SDE

Utilisation de SDE à travers deux types de fichiers :– fichiers de spécification– fichiers d’ implémentation

Modularité

1 - Présentation 1 - Présentation (2/5)(2/5)

Page 10: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

Fichiers de spécificationFichiers de spécification

typedef integer{…}

typedef float{…}

typedef double{…}

service addition_integer(...)

service addition_float(...)

service addition_double(...)

service multiplication_integer(...)

...

operations.idl

typedef thread{…}

typedef fork{…}

service init_thread(…)

service start_thread(…)

service stop_thread(…)

service wait_thread(…)

service get_parent_fork(…)

service wait_fork(…)

process.idl

1 - Présentation 1 - Présentation (3/5)(3/5)

Page 11: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

Fichiers d ’implémentationFichiers d ’implémentationtype integer { opaque(2) } type float { opaque(4) }type double { opaque(8) }

service addition_integer { addition_2_octets }

service addition_float { addition_4_octets }

service addition_double { addition_8_octets }

service multiplication_integer { multiplication_2_octets }

operation_16_bits.imp

type integer { opaque(4) } type float { opaque(8) }type double { opaque(16) }

service addition_integer { addition_4_octets }

service addition_float { addition_8_octets }

service addition_double { addition_16_octets }

service multiplication_integer { multiplication_4_octets }

operation_32_bits.imp

1 - Présentation 1 - Présentation (4/5)(4/5)

Page 12: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

Fichiers d ’implémentationFichiers d ’implémentationtype thread { opaque(1024) } type fork { opaque(4096) }

service init_thread { init_thread_X }

service start_thread { start_thread_X }

service stop_thread { stop_thread_X }

service wait_fork { wait_fork_X }...

Process_X.imp

type thread { opaque(4096) } type fork { opaque(8192) }

service init_thread { init_thread_Y }

service start_thread { start_thread_Y }

service stop_thread { stop_thread_Y }

service wait_fork { wait_fork_Y }...

Process_Y.imp

1 - Présentation 1 - Présentation (5/5)(5/5)

Page 13: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

13

Plan de la présentationPlan de la présentation

IntroductionIntroduction 1 - Présentation1 - Présentation 2 - Objectifs2 - Objectifs 3 - Mise en œuvre3 - Mise en œuvre 4 - Perspectives4 - Perspectives ConclusionConclusion

Page 14: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

14

2 - Objectifs du projet2 - Objectifs du projet

Implémentation d’un gestionnaire de types- types fixes

- types variables

Optimisation de la mémoire

- en taille de l’espace utilisé par les objets

- en temps d ’accès aux objets

Allocation mémoire des types créés

Page 15: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

15

Plan de la présentationPlan de la présentation

IntroductionIntroduction 1 - Présentation1 - Présentation 2 - Objectifs2 - Objectifs 3 - Mise en œuvre3 - Mise en œuvre 4 - Perspectives4 - Perspectives ConclusionConclusion

Page 16: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

16

Plan de la présentationPlan de la présentation

IntroductionIntroduction 1 - Présentation1 - Présentation 2 - Objectifs2 - Objectifs 3 - Mise en œuvre3 - Mise en œuvre 4 - Perspectives4 - Perspectives ConclusionConclusion

Types statiques introduits par SDE

Analyse de types statiques

Optimisation mémoire

Types dynamiques introduits par SDE

Analyse de types dynamiques

Page 17: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

17

Plan de la présentationPlan de la présentation

IntroductionIntroduction 1 - Présentation1 - Présentation 2 - Objectifs2 - Objectifs 3 - Mise en œuvre3 - Mise en œuvre 4 - Perspectives4 - Perspectives ConclusionConclusion

Types statiques introduits par SDE

Analyse de types statiques

Optimisation mémoire

Types dynamiques introduits par SDE

Analyse de types dynamiques

Page 18: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

18

Types statiques introduits par SDETypes statiques introduits par SDE

Types statiques

– Opaque

– Externe

– Composé

Page 19: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

19

Types statiques introduits par SDETypes statiques introduits par SDE

Types statiques

– Opaque

– Externe

– Composé

Page 20: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

20

Type opaque (1/2)Type opaque (1/2)

Utilisé dans les fichiers d’ implémentation

Un espace mémoire contigu

Définit les types de base

Types statiques introduits par SDETypes statiques introduits par SDE

Page 21: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

21

Type opaque (2/2)Type opaque (2/2)

Typedef int

{}

int.idl

Type int

{

private :

opaque(2);

}

int_2.imp

Types statiques introduits par SDETypes statiques introduits par SDE

Page 22: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

22

Types statiques introduits par SDETypes statiques introduits par SDE

Types statiques

– Opaque

– Externe

– Composé

Page 23: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

23

Type ExterneType Externe

correspond à un type déclaré par l ’utilisateur :

– soit dans le même fichier de spécification,

– soit dans un autre fichier de spécification.

Types statiques introduits par SDETypes statiques introduits par SDE

Page 24: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

24

Types statiques introduits par SDETypes statiques introduits par SDE

Types statiques

– Opaque

– Externe

– Composé

Page 25: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

25

Type ComposéType Composé

un type composé est :

– soit une structure

– soit une union

– soit un tableau

Types statiques introduits par SDETypes statiques introduits par SDE

Page 26: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

26

Type StructureType Structure

Typedef frame{}

components.idl

Type frame{private : struct {

integer size; string color; … };

}frame_X.imp

Types statiques introduits par SDETypes statiques introduits par SDE

Page 27: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

27

Type ComposéType Composé

un type composé est :

– soit une structure

– soit une union

– soit un tableau

Types statiques introduits par SDETypes statiques introduits par SDE

Page 28: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

28

Type UnionType Union

typedef Object{}typedef Byte{}typedef Double{}typedef Short{}typedef Int{}

types.idl

type Object{private : union { Byte b;

Double d; Short s; Int i;…

};}

Object.imp

Types statiques introduits par SDETypes statiques introduits par SDE

Page 29: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

29

Type ComposéType Composé

un type composé est :

– soit une structure

– soit une union

– soit un tableau

Types statiques introduits par SDETypes statiques introduits par SDE

Page 30: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

Type TableauType Tableau

typedef IP_addr{}

typedef Char{}

protocols.idl

type IP_addr{ private:

Char [4];}

Type Char{ private:

opaque(1);}

protocols_v4.imp

type IP_addr{ private:

Char[4];}

Type Char{ private:

opaque(4);}

protocols_v6.imp

Types statiques introduits par SDETypes statiques introduits par SDE

Page 31: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

31

Plan de la présentationPlan de la présentation

IntroductionIntroduction 1 - Présentation1 - Présentation 2 - Objectifs2 - Objectifs 3 - Mise en œuvre3 - Mise en œuvre 4 - Perspectives4 - Perspectives ConclusionConclusion

Types statiques introduits par SDE

Analyse de types statiques

Optimisation mémoire

Types dynamiques introduits par SDE

Analyse de types dynamiques

Page 32: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

32

Analyse des types statiquesAnalyse des types statiques

3 étapes :

– Parcours des types définis dans les fichiers de spécification et d ’implémentation

– Génération de macros permettant l ’utilisation des types

– Allocation mémoire du type

Page 33: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

33

Macros générées par SDEMacros générées par SDE

Les noms des macros ont la forme suivante :– (global | <module_name>) [_<var_name_1> [_… [_<var_name_N>]]

Macros spécifiques aux Tableaux

Macros spécifiques aux autres types

Analyse des types statiquesAnalyse des types statiques

Page 34: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

34

Macros des types statiquesMacros des types statiques

#define types_X_integer(ref) ( (char *) (ref)+OFFSET )

Type integer{private:

opaque(4) ;}

types_X.imp

Typedef integer{}

types.idl

Analyse des types statiquesAnalyse des types statiques

Page 35: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

35

Macros des types Tableaux statiquesMacros des types Tableaux statiques

#define types_matrice(ref,i0,i1) ( (char *)(ref)+i0*5*4+i1*4+OFFSET )

Type matrice{private :

opaque(4) [5][2];}

types_X.imp

Typedef matrice{}

types.idl

Analyse des types statiquesAnalyse des types statiques

Page 36: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

36

Allocation mémoire statiqueAllocation mémoire statique

une fonction d ’allocation mémoire par type :

– localité spatiale des champs du type :

rapidité d ’accès aux champs

– indispensable dans un contexte multitâche :

mémoire moins fragmentée

processus plus rapides

– retourne une référence

Analyse des types statiquesAnalyse des types statiques

Page 37: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

37

Plan de la présentationPlan de la présentation

IntroductionIntroduction 1 - Présentation1 - Présentation 2 - Objectifs2 - Objectifs 3 - Mise en œuvre3 - Mise en œuvre 4 - Perspectives4 - Perspectives ConclusionConclusion

Types statiques introduits par SDE

Analyse de types statiques

Optimisation mémoire

Types dynamiques introduits par SDE

Analyse de types dynamiques

Page 38: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

38

Optimisation mémoire Optimisation mémoire (1/9)(1/9)

État initial du SDE :

Placement

Mémoire

Pas

d ’optimisation

Page 39: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

39

Optimisation mémoire Optimisation mémoire (2/9)(2/9)

1- Le placement mémoire :

Alignement 1 :

Alignement 2 :

Accepté par processeur X

Accepté par processeur X

Refusé par processeur Y

Accepté par processeur Y

Page 40: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

40

Optimisation mémoire Optimisation mémoire (3/9)(3/9)

1- Le placement mémoire :

Règle 1 :

l’adresse allouée à un objet placé en

mémoire doit satisfaire l’alignement

dicté par le processeur utilisé.

Page 41: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

Optimisation mémoire Optimisation mémoire (4/9)(4/9)

2- L’optimisation de l ’espace utilisé :

1

2

4

4

4

8

Alignement Mémoire nonoptimisée

Mémoireoptimisée

Gain de place mémoire : 30%

Page 42: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

42

Optimisation mémoire Optimisation mémoire (5/9)(5/9)

2- L’optimisation de l’espace utilisé :

Optimisation 1 :

l’espace restant entre 2 objets placés en

mémoire doit être minimal.

Page 43: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

43

Optimisation mémoire Optimisation mémoire (6/9)(6/9)

3- L’alignement des types :

Les structures

Les tableaux

Les unions

Gestions différentes de l’alignement

Page 44: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

44

3 x ( 2 )

1 x ( 4 )

2 x ( 8 )

Optimisation mémoire Optimisation mémoire (7/9)(7/9)

Les structures :

Objets à placer

Emplacementdes objets

Page 45: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

45

1 x ( 2 )

1 x ( 4 )

1 x ( 8 )

Optimisation mémoire Optimisation mémoire (8/9)(8/9)

Les tableaux :

Objets d’un élémentÉlément

de tableau

Tableau à 2 éléments

Contrainte de spécification : la localité mémoire. Les éléments doivent être placés consécutivement

Page 46: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

Optimisation mémoire Optimisation mémoire (9/9)(9/9)

Les unions :

Union composée des 3 structures : , ,

En hachuré, les emplacements laissés libres par les structures : ,,

Page 47: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

47

Plan de la présentationPlan de la présentation

IntroductionIntroduction 1 - Présentation1 - Présentation 2 - Objectifs2 - Objectifs 3 - Mise en œuvre3 - Mise en œuvre 4 - Perspectives4 - Perspectives ConclusionConclusion

Types statiques introduits par SDE

Analyse de types statiques

Optimisation mémoire

Types dynamiques introduits par SDE

Analyse de types dynamiques

Page 48: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

48

Types dynamiques introduits par SDETypes dynamiques introduits par SDE

Taille du type connue à l’exécution.

Deux sortes de type dynamique :

– type composé Union

– type composé Tableau

Page 49: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

Types Unions dynamiquesTypes Unions dynamiques

typedef Object{}typedef Byte{}typedef Double{}typedef Short{}typedef Boolean{}

types.idl

type Object{private : union <selection_function> { Byte b;

Double d; Short s; Boolean i; …

};}

Object.imp

Types dynamiques introduits par SDETypes dynamiques introduits par SDE

Page 50: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

Types Tableaux dynamiquesTypes Tableaux dynamiques

typedef Object{}typedef Byte{}typedef Double{}typedef Short{}typedef Boolean{}

types.idl

type Object{private : union { Byte b;

Double d; Short s; Boolean bo; …

}[dimension_function];}

Object.imp

Types dynamiques introduits par SDETypes dynamiques introduits par SDE

Page 51: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

51

Plan de la présentationPlan de la présentation

IntroductionIntroduction 1 - Présentation1 - Présentation 2 - Objectifs2 - Objectifs 3 - Mise en œuvre3 - Mise en œuvre 4 - Perspectives4 - Perspectives ConclusionConclusion

Types statiques introduits par SDE

Analyse de types statiques

Optimisation mémoire

Types dynamiques introduits par SDE

Analyse de types dynamiques

Page 52: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

52

Analyse des types dynamiquesAnalyse des types dynamiques

3 étapes :

– Parcours des types définis dans les fichiers de spécification et d’implémentation

– Génération de macros permettant l’utilisation des types

– Allocation mémoire du type

Page 53: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

53

Macros des types Tableaux dynamiquesMacros des types Tableaux dynamiques

#define meta1(ref) ((char *)(ref)+OFFSET)#define types_array(ref,i0) ( (char *) (ref) +*meta1(ref)+i0*4+OFFSET)

Type array{private :

opaque(4) [<dim>];}

types_X.imp

Typedef array{}

types.idl

Analyse des types dynamiquesAnalyse des types dynamiques

Page 54: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

54

Allocation mémoire des types dynamiquesAllocation mémoire des types dynamiques

Problème :– Taille du type connue à l’exécution

Solution :– Définition de pointeurs – Réservation d’emplacements pour les adresses– Mise à jour de ces emplacements– Localité mémoire – Retourne une référence

Analyse des types dynamiquesAnalyse des types dynamiques

Page 55: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

55

Plan de la présentationPlan de la présentation

IntroductionIntroduction 1 - Présentation1 - Présentation 2 - Objectifs2 - Objectifs 3 - Mise en œuvre3 - Mise en œuvre 4 - Perspectives4 - Perspectives ConclusionConclusion

Page 56: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

56

4 - Perspectives4 - Perspectives

Pour les types

- interface graphique

- génération de Makefile

- séparation entre les classes Java et le langage d’implémentation

Pour l’alignement des objets en mémoire

- algorithme de recherche par arbres

- optimisation de la vitesse d’accès mémoire

Page 57: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

57

Plan de la présentationPlan de la présentation

IntroductionIntroduction 1 - Présentation1 - Présentation 2 - Objectifs2 - Objectifs 3 - Mise en œuvre3 - Mise en œuvre 4 - Perspectives4 - Perspectives ConclusionConclusion

Page 58: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

58

ConclusionConclusion

Objectifs atteints

- gestionnaire de type réalisé

- optimisation de la taille mémoire utilisée

Critiques

- fichiers générés

- travail modulaire

Page 59: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

59

Questions et Questions et commentairescommentaires

Page 60: Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE Projet

Mise en œuvre d'un outil d'aide au Mise en œuvre d'un outil d'aide au développement d'une JVM développement d'une JVM modulaire pour système embarquémodulaire pour système embarqué

Olivier DERUELLE

Erwan FOUYER

Maxime JOUIN

Rodolphe LOUE

Projet Solidor

FINFIN