La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

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 Solidor

2 2 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion

3 3 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion

4 4 Introduction (1/3) Les systèmes embarqués : un monde en plein essor - Applications multimédia - Télécommunications - Chargement dynamique dapplications

5 5 Introduction (2/3) La solution : le mécanisme de la JVM - supporte le chargement dynamique dapplications - nouveau standard dans lindustrie - nombreuses applications déjà disponibles

6 6 Introduction (3/3) Mais lembarqué impose ses contraintes : impose CPUMémoire Énergie Optimisation des ressources JVM adaptée

7 7 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion

8 8 1 - Présentation (1/5) SDE Gestionnaire de types Projection en C Implémentation Spécification Source & Glue Fonctionnement Général Langage C

9 9 Interface de SDE Utilisation de SDE à travers deux types de fichiers : –fichiers de spécification –fichiers d implémentation Modularité 1 - Présentation (2/5)

10 Fichiers 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 (3/5)

11 Fichiers d implémentation type 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 (4/5)

12 Fichiers d implémentation type 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 (5/5)

13 13 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion

14 Objectifs du projet Implémentation dun gestionnaire de types - types fixes - types variables Optimisation de la mémoire - en taille de lespace utilisé par les objets - en temps d accès aux objets Allocation mémoire des types créés

15 15 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion

16 16 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion Types statiques introduits par SDE Analyse de types statiques Optimisation mémoire Types dynamiques introduits par SDE Analyse de types dynamiques

17 17 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion Types statiques introduits par SDE Analyse de types statiques Optimisation mémoire Types dynamiques introduits par SDE Analyse de types dynamiques

18 18 Types statiques introduits par SDE Types statiques –Opaque –Externe –Composé

19 19 Types statiques introduits par SDE Types statiques –Opaque –Externe –Composé

20 20 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 SDE

21 21 Type opaque (2/2) Typedef int {} int.idl Type int { private : opaque(2); } int_2.imp Types statiques introduits par SDE

22 22 Types statiques introduits par SDE Types statiques –Opaque –Externe –Composé

23 23 Type 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 SDE

24 24 Types statiques introduits par SDE Types statiques –Opaque –Externe –Composé

25 25 Type Composé un type composé est : –soit une structure –soit une union –soit un tableau Types statiques introduits par SDE

26 26 Type Structure Typedef frame{} components.idl Type frame { private : struct { integer size; string color; … }; } frame_X.imp Types statiques introduits par SDE

27 27 Type Composé un type composé est : –soit une structure –soit une union –soit un tableau Types statiques introduits par SDE

28 28 Type 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 SDE

29 29 Type Composé un type composé est : –soit une structure –soit une union –soit un tableau Types statiques introduits par SDE

30 Type 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_v 6.imp Types statiques introduits par SDE

31 31 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion Types statiques introduits par SDE Analyse de types statiques Optimisation mémoire Types dynamiques introduits par SDE Analyse de types dynamiques

32 32 Analyse 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

33 33 Macros générées par SDE Les noms des macros ont la forme suivante : –(global | ) [_ [_… [_ ]] Macros spécifiques aux Tableaux Macros spécifiques aux autres types Analyse des types statiques

34 34 Macros 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 statiques

35 35 Macros 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 statiques

36 36 Allocation 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 statiques

37 37 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion Types statiques introduits par SDE Analyse de types statiques Optimisation mémoire Types dynamiques introduits par SDE Analyse de types dynamiques

38 38 Optimisation mémoire (1/9) État initial du SDE : Placement Mémoire Pas d optimisation

39 39 Optimisation mémoire (2/9) 1- Le placement mémoire : Alignement 1 : Alignement 2 : Accepté par processeur X Refusé par processeur Y Accepté par processeur Y

40 40 Optimisation mémoire (3/9) 1- Le placement mémoire : Règle 1 : ladresse allouée à un objet placé en mémoire doit satisfaire lalignement dicté par le processeur utilisé.

41 Optimisation mémoire (4/9) 2- Loptimisation de l espace utilisé : AlignementMémoire non optimisée Mémoire optimisée Gain de place mémoire : 30%

42 42 Optimisation mémoire (5/9) 2- Loptimisation de lespace utilisé : Optimisation 1 : lespace restant entre 2 objets placés en mémoire doit être minimal.

43 43 Optimisation mémoire (6/9) 3- Lalignement des types : Les structures Les tableaux Les unions Gestions différentes de lalignement

44 44 3 x( 2 ) 1 x( 4 ) 2 x( 8 ) Optimisation mémoire (7/9) Les structures : Objets à placer Emplacement des objets

45 45 1 x( 2 ) 1 x( 4 ) 1 x( 8 ) Optimisation mémoire (8/9) Les tableaux : Objets dun é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

46 Optimisation mémoire (9/9) Les unions : Union composée des 3 structures :,, En hachuré, les emplacements laissés libres par les structures :,,

47 47 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion Types statiques introduits par SDE Analyse de types statiques Optimisation mémoire Types dynamiques introduits par SDE Analyse de types dynamiques

48 48 Types dynamiques introduits par SDE Taille du type connue à lexécution. Deux sortes de type dynamique : – type composé Union – type composé Tableau

49 Types Unions dynamiques typedef Object{} typedef Byte{} typedef Double{} typedef Short{} typedef Boolean{} types.idl type Object { private : union { Byte b; Double d; Short s; Boolean i; … }; } Object.imp Types dynamiques introduits par SDE

50 Types 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 SDE

51 51 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion Types statiques introduits par SDE Analyse de types statiques Optimisation mémoire Types dynamiques introduits par SDE Analyse de types dynamiques

52 52 Analyse des types dynamiques 3 étapes : –Parcours des types définis dans les fichiers de spécification et dimplémentation –Génération de macros permettant lutilisation des types –Allocation mémoire du type

53 53 Macros 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) [ ]; } types_X.imp Typedef array { } types.idl Analyse des types dynamiques

54 54 Allocation mémoire des types dynamiques Problème : –Taille du type connue à lexécution Solution : –Définition de pointeurs –Réservation demplacements pour les adresses –Mise à jour de ces emplacements –Localité mémoire –Retourne une référence Analyse des types dynamiques

55 55 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion

56 Perspectives Pour les types - interface graphique - génération de Makefile - séparation entre les classes Java et le langage dimplémentation Pour lalignement des objets en mémoire - algorithme de recherche par arbres - optimisation de la vitesse daccès mémoire

57 57 Plan de la présentation Introduction Introduction 1 - Présentation 1 - Présentation 2 - Objectifs 2 - Objectifs 3 - Mise en œuvre 3 - Mise en œuvre 4 - Perspectives 4 - Perspectives Conclusion Conclusion

58 58 Conclusion Objectifs atteints - gestionnaire de type réalisé - optimisation de la taille mémoire utilisée Critiques - fichiers générés - travail modulaire

59 59 Questions et commentaires

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 Solidor FIN


Télécharger ppt "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."

Présentations similaires


Annonces Google