Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
LES NOMBRES PREMIERS ET COMPOSÉS
Ma surprise du Zoo.
[number 1-100].
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Licence pro MPCQ : Cours
Additions soustractions
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
Réseau ATB du CClin Paris-Nord – résultats 2011 LL, 22/11/ Réseau antibiotiques du CClin Paris-Nord : Résultats 2011 Coordination: Dr François LHÉRITEAU.
Les numéros 70 –
Les numéros
Les identités remarquables
Le, la, les words Possessive Adjectives MINE!!. 2 My in french is mon, ma,mes... Le word/ begins with a vowel: Mon La word: Ma Les word: Mes.
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
2 1. Vos droits en tant quusagers 3 1. Vos droits en tant quusagers (suite) 4.
1 7 Langues niveaux débutant à avancé. 2 Allemand.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
SERABEC Simulation sauvetage aérien avec un Hercule C130. Départ de St-Honoré le 4 octobre Durée de vol 3 heures. Premier vol en Hercule pour les.
-17 Anticipations économiques en Europe Septembre 2013 Indicateur > +20 Indicateur 0 a +20 Indicateur 0 a -20 Indicateur < -20 Union européenne total:
1 5 octobre 2011 / paw Présentation du 7 octobre 2011.
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Synchronisation et communication entre processus
II. Chaînage, SDD séquentielles
1 Choisir une catégorie. Vous recevrez la réponse, vous devez donner la question. Cliquez pour commencer.
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
PM18 MONTAGE DU BLINDAGE AUTOUR DE LA QRL F. DELSAUX - 25 JAN 2005
Le Concours de Conaissance Francais I novembre 2012.
Si le Diaporama ne s'ouvre pas en plein écran Faites F5 sur votre clavier.
Titre : Implémentation des éléments finis sous Matlab
1 Conduite du changement LA CONDUITE DU CHANGEMENT.
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
LES NOMBRES PREMIERS ET COMPOSÉS
Logiciel gratuit à télécharger à cette adresse :
1 INETOP
RACINES CARREES Définition Développer avec la distributivité Produit 1
Représentation des systèmes dynamiques dans l’espace d’état
Systèmes mécaniques et électriques
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Titre : Implémentation des éléments finis en Matlab
COURS DE PROGRAMMATION ORIENTEE OBJET :
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
Comment rendre une femme heureuse…
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Structures des données
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
* Source : Étude sur la consommation de la Commission européenne, indicateur de GfK Anticipations.
Formation des commissaires sportifs
Nom:____________ Prénom: ___________
LES PILES ET FILES.
Notions de pointeurs en C
1 Mise en œuvre d'un outil d'aide au développement d'une JVM modulaire pour système embarqué Rodolphe Loué Projet SOLIDOR.
Commission paritaire de suivi des opérations de reclassement repositionnement dans le cadre du droit d’option Statistiques novembre 2010.
Les Chiffres Prêts?
Transcription de la présentation:

Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE 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

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

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

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

Introduction (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

Optimisation des ressources Introduction (3/3) Mais l’embarqué impose ses contraintes : Optimisation des ressources CPU Mémoire Énergie impose JVM adaptée

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

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

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

Fichiers de spécification 1 - Présentation (3/5) Fichiers de spécification 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 typedef integer{…} typedef float{…} typedef double{…} service addition_integer(...) service addition_float(...) service addition_double(...) service multiplication_integer(...) ... operations.idl

Fichiers d ’implémentation 1 - Présentation (4/5) 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

Fichiers d ’implémentation 1 - Présentation (5/5) 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

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

2 - 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

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

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

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

Types statiques introduits par SDE Opaque Externe Composé

Types statiques introduits par SDE Opaque Externe Composé

Types statiques introduits par SDE 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 Type opaque (2/2) Typedef int {} int.idl Type int { private : opaque(2); } int_2.imp

Types statiques introduits par SDE Opaque Externe Composé

Types statiques introduits par SDE 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 Opaque Externe Composé

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

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

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

Types statiques introduits par SDE Type Union type Object { private : union Byte b; Double d; Short s; Int i; … }; } Object.imp typedef Object{} typedef Byte{} typedef Double{} typedef Short{} typedef Int{} types.idl

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

Types statiques introduits par SDE Type Tableau type IP_addr { private: Char [4]; } Type Char opaque(1); protocols_v4.imp type IP_addr { private: Char[4]; } Type Char opaque(4); protocols_v6.imp typedef IP_addr{} typedef Char{} protocols.idl

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

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

Macros générées par SDE Analyse des types statiques Macros 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

Macros des types statiques Analyse des types statiques Macros des types statiques Type integer{ private: opaque(4) ; } types_X.imp Typedef integer { } types.idl #define types_X_integer(ref) ( (char *) (ref)+OFFSET )

Macros des types Tableaux statiques Analyse des types statiques Macros des types Tableaux statiques Type matrice{ private : opaque(4) [5][2]; } types_X.imp Typedef matrice { } types.idl #define types_matrice(ref,i0,i1) ( (char *)(ref)+i0*5*4+i1*4+OFFSET )

Allocation mémoire statique Analyse des types statiques 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

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

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

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

Optimisation mémoire (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é.

Optimisation mémoire (4/9) 2- L’optimisation de l ’espace utilisé : Alignement Mémoire non optimisée Mémoire optimisée 1 2 4 8 Gain de place mémoire : 30%

Optimisation mémoire (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.

Optimisation mémoire (6/9) 3- L’alignement des types : Les structures Les tableaux Les unions Gestions différentes de l’alignement

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

Optimisation mémoire (8/9) Contrainte de spécification : la localité mémoire.  Les éléments doivent être placés consécutivement Les tableaux : Tableau à 2 éléments Élément de tableau Objets d’un élément 1 x ( 2 ) 1 x ( 4 ) 1 x ( 8 )

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

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

Types dynamiques introduits par SDE Taille du type connue à l’exécution. Deux sortes de type dynamique : type composé Union type composé Tableau

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

Types dynamiques introduits par SDE Types Tableaux dynamiques type Object { private : union Byte b; Double d; Short s; Boolean bo; … }[dimension_function]; } Object.imp typedef Object{} typedef Byte{} typedef Double{} typedef Short{} typedef Boolean{} types.idl

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

Analyse 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

Macros des types Tableaux dynamiques Analyse des types dynamiques Macros des types Tableaux dynamiques Type array{ private : opaque(4) [<dim>]; } types_X.imp Typedef array { } types.idl #define meta1(ref) ((char *)(ref)+OFFSET) #define types_array(ref,i0) ( (char *) (ref) +*meta1(ref)+i0*4+OFFSET)

Allocation mémoire des types dynamiques Analyse des types dynamiques Allocation 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

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

4 - 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

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

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

Questions et commentaires

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