Introduction aux Machines Virtuelles avec VMKit

Dimension: px
Commencer à balayer dès la page:

Download "Introduction aux Machines Virtuelles avec VMKit"

Transcription

1 Introduction aux Machines Virtuelles avec Ingénieur :, Responsables : Gaël Thomas, Gilles Müller EQUIPE REGAL LIP6 INRIA (Paris/France) un substrat de machine virtuelle : a substrate for Managed Runtime Environments 2 Les environnements d'exécution Les machines virtuelles Exécution code natif ( C, C++ ) source source Execution machine virtuelle (Java, C#) source source Machine Virtuelle vérificateur de byte-code Analyse Analyse Optimise Optimise Génère code binaire natif spécifique Génère code binaire natif spécifique Analyse Analyse Optimise Optimise Génère byte-code générique Génère byte-code générique Byte-code Byte-code générique générique à la volée (JIT) Interpréteur Threads Allocateur mémoire Ramasse miette () binaire binaire natif natif execution execution Machine Machine Virtuelle Virtuelle Analyse byte-code Analyse byte-code Évalue le byte-code ou Évalue le byte-code ou Compile et imise en code binaire Compile et imise en code binaire natif à la volée (JIT) natif à la volée (JIT) execution execution Problèmes Développement extrêmement long à réaliser! Comment tester une idée avec différents langages? Comment implémenter une nouvelle VM efficace pour de nouveaux langages? Comment étendre rapidement des langages existant? : a substrate for Managed Runtime Environments 3 : a substrate for Managed Runtime Environments 4

2 : un substrat de machine virtuelle : un substrat de machine virtuelle But de : aider à expérimenter dans les VM But de : aider à expérimenter dans les VM Objectif : factoriser les composants communs des VM Objectif : factoriser les composants communs des VM Just In Time : génération de code natif à la volée Just In Time : génération de code natif à la volée mémoire : alloue et collecte automatiquement la mémoire libre mémoire : alloue et collecte automatiquement la mémoire libre de Thread : créé et synchronise les threads de Thread : créé et synchronise les threads Personnalité Java (J3) Personnalité C# (N3 non maintenu) Personnalité R (Reactor) Personnalités Personnalité Java (J3) Personnalité C# (N3 non maintenu) Personnalité R (Reactor) ~ 25k loc Just In Time mémoire de Thread Just In Time mémoire de Thread ~ 500k loc : a substrate for Managed Runtime Environments 5 : a substrate for Managed Runtime Environments 6 : un substrat de machine virtuelle But de : aider à expérimenter dans les VM Objectif : factoriser les composants communs des VM Just In Time : génération de code natif à la volée mémoire : alloue et collecte automatiquement la mémoire libre de Thread : créé et synchronise les threads Personnalité Java (J3) Personnalité C# (N3 non maintenu) Personnalité R (Reactor) < 5% 5% du du code code ~ 25k loc d'un point de vue technique Just In Time mémoire de Thread ~ 500k loc : a substrate for Managed Runtime Environments 7 : a substrate for Managed Runtime Environments 8

3 Implementation de Architecture détaillée Choix d'implémentation: repose sur des composants externes à la volée (JIT) : LLVM [Lattner & Adve CGO 04] mémoire : MMTk [Blackburn et Al. ICSE 04] de Thread : Posix = glue entre les différents composants Entre JIT-C et gestionnaire mémoire = précis Entre le gestionnaire de Thread et le gestionnaire mémoire = multi-threadé Personality Compilation related function Call back Method Stub Invoke Invoke Generate Native LLVM Input/Output Generate Find global Roots Stack Maps Personality related functions Modify Header MMTk Trace Object gcmalloc/ write barrier Clone Object delegate Find thread Roots Posix Thread Thread Management/ handshake Operating System : a substrate for Managed Runtime Environments 9 : a substrate for Managed Runtime Environments 10 Architecture de la VM Minimal () pour le tutoriel Operating System : a substrate for Managed Runtime Environments 11 : a substrate for Managed Runtime Environments 12

4 Architecture de la et Gestion des Threads Point d'entrée du Garbage collector Backtrace (parcours de la pile d exécution) Traçage des variables globales Gestion des exceptions Thread Rendez-vous du garbage collector Scan de la pile d'exécution lors du Traçage des variables locales Méthode principale d'exécution : a substrate for Managed Runtime Environments 13 : a substrate for Managed Runtime Environments 14 Architecture de la Architecture de la : a substrate for Managed Runtime Environments 15 : a substrate for Managed Runtime Environments 16

5 (tag) (tag) [... ] * F (* param) TOY_PARAM(param) ; TOY_VAR(, val) ; [ init val ] val = g(param, val) ; return val ; * G (* a, * b) TOY_PARAM(a) ; TOY_PARAM(b) ; TOY_VAR(, res) ; res = a.dosomething(b) ; return res ; [... ] [... ] * F (* param) TOY_PARAM(param) ; TOY_VAR(, val) ; [ init val ] val = g(param, val) ; return val ; * G (* a, * b) TOY_PARAM(a) ; TOY_PARAM(b) ; TOY_VAR(, res) ; res = a.dosomething(b) ; return res ; [... ] Stack Maps : a substrate for Managed Runtime Environments 17 : a substrate for Managed Runtime Environments 18 (tag) (header gc) [... ] * F (* param) TOY_PARAM(param) ; TOY_VAR(, val) ; [ init val ] val = g(param, val) ; return val ; Call stack... param F val parameters Local vars - header - Bits de marquage - Bits de hash - Bits de lock (J3) - Bits personnalisables * G (* a, * b) TOY_PARAM(a) ; TOY_PARAM(b) ; TOY_VAR(, res) ; res = a.dosomething(b) ; return res ; [... ] Stack Maps a b G res parameters Local vars header Object : a substrate for Managed Runtime Environments 19 : a substrate for Managed Runtime Environments 20

6 (header gc) (tracer) - header - Bits de marquage - Bits de hash - Méthode de Traçage de l'objet - Bits de lock (J3) - Bits personnalisables destructor Op. delete - header - Bits de marquage - Bits de hash - Méthode de Traçage de l'objet Call stack Stack Maps... param F - Bits de lock (J3) - Bits personnalisables tracer markandtrace markandtrace markandtrace 1 2 VT C++ header Object tracer val tracer 3 : a substrate for Managed Runtime Environments 21 : a substrate for Managed Runtime Environments 22 (tracer) Architecture de la - header - Bits de marquage - Bits de hash - Méthode de Traçage de l'objet - Bits de lock (J3) - Bits personnalisables - Allocateur - Surcharge operator new - Appel à new interdit pour gc (paramètre opaque) : a substrate for Managed Runtime Environments 23 : a substrate for Managed Runtime Environments 24

7 Architecture de la (load ) Récupération du code (représentation intermédiaire LLVM) : a substrate for Managed Runtime Environments 25 : a substrate for Managed Runtime Environments 26 (load ) (load ) Récupération du code (représentation intermédiaire LLVM) Récupération du code (représentation intermédiaire LLVM) : a substrate for Managed Runtime Environments 27 : a substrate for Managed Runtime Environments 28

8 (load ) (generate ) Récupération du code (représentation intermédiaire LLVM) -runtime.bc Load at runtime bin bin -content.bc Récupération du code (représentation intermédiaire LLVM) : a substrate for Managed Runtime Environments 29 : a substrate for Managed Runtime Environments 30 (generate ) (generate ) Récupération du code (représentation intermédiaire LLVM) Récupération du code (représentation intermédiaire LLVM) No body Generate Materialize No body : a substrate for Managed Runtime Environments 31 : a substrate for Managed Runtime Environments 32

9 (generate ) (imize ) Récupération du code (représentation intermédiaire LLVM) Récupération du code (représentation intermédiaire LLVM) Generate No Materialize No body Generate Materialize No body : a substrate for Managed Runtime Environments 33 : a substrate for Managed Runtime Environments 34 (imize ) (imize ) Récupération du code (représentation intermédiaire LLVM) Récupération du code (représentation intermédiaire LLVM) Materialize No body : a substrate for Managed Runtime Environments 35 : a substrate for Managed Runtime Environments 36

10 ( to native) ( Infos) Récupération du code (représentation intermédiaire LLVM) Récupération du code (représentation intermédiaire LLVM) func Stack Maps Native func Native func : a substrate for Managed Runtime Environments 37 : a substrate for Managed Runtime Environments 38 ( to native) Récupération du code (représentation intermédiaire LLVM) Native func Récupération du code (représentation intermédiaire LLVM) Generation d' Optimisation de l' Conversion de l' vers code natif Transmission des StackMaps (information variables locales) au : a substrate for Managed Runtime Environments 39 : a substrate for Managed Runtime Environments 40

11 lib/vmkit/mmtk/ A vos claviers! include/vmkit include/llvm Questions?.h Vmkit.h Thread.h Allocator.h.h.h LLVM /lib TOYVM (.h /.cc) (.h /.cc) (.h /.cc) util.h Tracers.cc (.h /.cc) : a substrate for Managed Runtime Environments 41 : a substrate for Managed Runtime Environments 42

Machines Virtuelles. et bazard autour. Rémi Forax

Machines Virtuelles. et bazard autour. Rémi Forax Machines Virtuelles et bazard autour Rémi Forax Avant propos Quelle est la complexité du code ci-dessous? Avec un processeur à 1Ghz, combien de temps le calcul prendra t'il? public static void main(string[]

Plus en détail

La technologie Java Card TM

La technologie Java Card TM Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages

Plus en détail

Vers un outil d analyse de l empreinte mémoire d un code de calcul scientifique.

Vers un outil d analyse de l empreinte mémoire d un code de calcul scientifique. Vers un outil d analyse de l empreinte mémoire d un code de calcul scientifique. Ameziane NAIT ABDELAZIZ Département informatique, filière PRCD Maître de stage : Bruno LATHUILIERE Tuteur : Brice GOGLIN

Plus en détail

Projet 1 ENS Lyon L3IF

Projet 1 ENS Lyon L3IF Projet 1 ENS Lyon L3IF Génération de code Sébastien Briais 8 janvier 2008 Dans cette partie, vous allez devoir implémenter le générateur de code pour l émulateur DLX risc-emu. À rendre pour le 18 janvier

Plus en détail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

Java - la plateforme

Java - la plateforme Java - la plateforme Java la plateforme Java? VM GC JIT Java Aujourd'hui 3 environnements d'exécutions différents Java ME (Micro Edition) pour PDA, téléphone Android (Java SE moins certain paquetages)

Plus en détail

Vulgarisation Java EE Java EE, c est quoi?

Vulgarisation Java EE Java EE, c est quoi? Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards

Plus en détail

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut

Plus en détail

La JVM. La machine virtuelle Java. La JVM. La JVM

La JVM. La machine virtuelle Java. La JVM. La JVM La machine virtuelle Java Historique et rappels Organisation mémoire de la JVM Le garbage collector Le bytecode, la machine à pile. Les threads Suivi, tracé, optimisation d un programme Java JVM embarquées

Plus en détail

Derrière toi Une machine virtuelle!

Derrière toi Une machine virtuelle! Derrière toi Une machine virtuelle! Yann-Gaël Guéhéneuc guehene@emn.fr École des Mines de Nantes, France Object Technology International Inc., Canada D où ça vient? Calculatrice Machine de Turing 1936

Plus en détail

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués International Journal of Engineering Research and Development e-issn: 2278-067X, p-issn: 2278-800X, www.ijerd.com Volume 7, Issue 5 (June 2013), PP.99-103 Solution A La Gestion Des Objets Java Pour Des

Plus en détail

I-JVM: une machine virtuelle Java pour l isolation de composants dans OSGi

I-JVM: une machine virtuelle Java pour l isolation de composants dans OSGi I-JVM: une machine virtuelle Java pour l isolation de composants dans OSGi Nicolas Geoffray 1, Gaël Thomas 1, Gilles Muller 1, Pierre Parrend 2, Stéphane Frénot 3, Bertil Folliot 1 nicolas.geoffray@lip6.fr

Plus en détail

Plan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB.

Plan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB. global Outils de développement et compilation IDE, GCC/Clang, ASAN, perf, valgrind, GDB Timothée Ravier LIFO, INSA-CVL, LIPN 1 re année cycle ingénieur STI 2013 2014 1 / 36 Objectifs des outils présentés

Plus en détail

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

Virtualisation Logicielle

Virtualisation Logicielle Virtualisation Virtualisation Logicielle Gaël Thomas gael.thomas@lip6.fr Principe d un système d exploitation Unifier l accès au matériel Diminuer le travail de développement des applications Couche d

Plus en détail

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java RN2-Programmation Orientée Objet - JAVA CH 1 à la POO et Java Licence Professionnelle 2006 Agnès Guerraz INRIA Rhône-Alpes agnes.guerraz@inria.fr LP UPMF, Grenoble Septembre 2006 Ce cours reprend en grande

Plus en détail

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan

Plus en détail

Simulation Numérique

Simulation Numérique Ecole Nationale de Techniques Avancées Simulation Numérique Chapitre 4 Surcharge des opérateurs Eric Lunéville Surcharge des opérateurs Le C++ utilise des opérateurs prédéfinis tels que + - * / sur les

Plus en détail

Génération de code binaire pour application multimedia : une approche au vol

Génération de code binaire pour application multimedia : une approche au vol Génération de binaire pour application multimedia : une approche au vol http://hpbcg.org/ Henri-Pierre Charles Université de Versailles Saint-Quentin en Yvelines 3 Octobre 2009 Présentation Présentation

Plus en détail

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Vérification formelle de la plate-forme Java Card

Vérification formelle de la plate-forme Java Card Vérification formelle de la plate-forme Java Card Thèse de doctorat Guillaume Dufay INRIA Sophia Antipolis Cartes à puce intelligentes Java Card : Environnement de programmation dédié. Dernières générations

Plus en détail

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme 1 2 c est quoi? Technologie développée par SUN Microsystems lancée en 1995 Dans un des premiers papiers* sur le langage JAVA, SUN le décrit

Plus en détail

Configuration et Déploiement d Applications Réparties par Intégration de l Hétérogénéité des Implémentations dans un Langage de Description d

Configuration et Déploiement d Applications Réparties par Intégration de l Hétérogénéité des Implémentations dans un Langage de Description d Configuration et Déploiement d Applications Réparties par Intégration de l Hétérogénéité des Implémentations dans un Langage de Description d Architecture Doctorant: Directeurs de thèse: Bechir ZALILA

Plus en détail

Le Ro le Hyper V Premie re Partie Configuration et Prise en main du gestionnaire Hyper-V

Le Ro le Hyper V Premie re Partie Configuration et Prise en main du gestionnaire Hyper-V Le Ro le Hyper V Premie re Partie Configuration et Prise en main du gestionnaire Hyper-V Microsoft France Division DPE Table des matières Présentation... 2 Objectifs... 2 Pré requis... 2 Quelles sont les

Plus en détail

La carte à puce. Jean-Philippe Babau

La carte à puce. Jean-Philippe Babau La carte à puce Jean-Philippe Babau Département Informatique INSA Lyon Certains éléments de cette présentation sont issus de documents Gemplus Research Group 1 Introduction Carte à puce de plus en plus

Plus en détail

CAHIER DES CHARGES D IMPLANTATION

CAHIER DES CHARGES D IMPLANTATION CAHIER DES CHARGES D IMPLANTATION Tableau de diffusion du document Document : Cahier des Charges d Implantation EVRP Version 6 Etabli par DCSI Vérifié par Validé par Destinataires Pour information Création

Plus en détail

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions

Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions Langage JAVA Bases du langage Opérations sur les fichiers Réseau Multi-tâche Logiciel: interfaces... Gestion des périphériques (méthodes natives) Accès aux bases de données Bases du langage Historique

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

Environnements de développement

Environnements de développement Environnements de développement Mihaela Sighireanu UFR d Informatique Paris 7, LIAFA, 175 rue Chevaleret, Bureau 6A7 http://www.liafa.jussieu.fr/ sighirea/cours/edi/ Introduction aux EDI, la plateforme

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

C ellules. Gestion et récupération automatique de mémoire. Principes des lang. de progr. INE 11. Allocation dynamique de mémoire.

C ellules. Gestion et récupération automatique de mémoire. Principes des lang. de progr. INE 11. Allocation dynamique de mémoire. Principes des lang. de progr. INE 11 Michel Mauny ENSTA ParisTech Prénom.Nom@ensta.fr Michel Mauny (ENSTA ParisTech) INE 11 Prénom.Nom@ensta.fr 1 / 37 Gestion et récupération automatique de mémoire lanage

Plus en détail

Métriques de performance pour les algorithmes et programmes parallèles

Métriques de performance pour les algorithmes et programmes parallèles Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and

Plus en détail

Une introduction à Java

Une introduction à Java Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

Programmation Orientée Objet Java

Programmation Orientée Objet Java Programmation Orientée Objet Java Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 12 novembre 2014 Bertrand Estellon (DII AMU) Programmation Orientée Objet Java 12 novembre

Plus en détail

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

SSTIC 2009. Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques...

SSTIC 2009. Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques... Désobfuscation automatique de binaires Et autres idyles bucoliques... Alexandre Gazet Sogeti / ESEC R&D alexandre.gazet(at)sogeti.com Yoann Guillot Sogeti / ESEC R&D yoann.guillot(at)sogeti.com SSTIC 2009

Plus en détail

Cours de compilation

Cours de compilation Cours de compilation 1 Introduction Un compilateur est un logiciel de traduction d un langage source vers un langage cible. D ordinaire le langage source est un langage de programmation évolué, comme C++

Plus en détail

CATALOGUE DE FORMATIONS OPTIMISATION DE PERFORMANCE ET ARCHITECTURES PARALLÈLES

CATALOGUE DE FORMATIONS OPTIMISATION DE PERFORMANCE ET ARCHITECTURES PARALLÈLES CATALOGUE DE FORMATIONS OPTIMISATION DE PERFORMANCE ET ARCHITECTURES PARALLÈLES Trois types de formation LES FORMATEURS Les experts techniques AS+ Groupe EOLEN disposent d une réelle expérience pratique

Plus en détail

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry. : Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA

Plus en détail

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007 NFP 121 Java et les Threads Présentation : Thierry Escalarasse Mai 2007 Plan du cour Présentation de la notion de Threads La classe Thread L interface Runnable Les états d un thread La Synchronisation

Plus en détail

Module.NET 3 Les Assemblys.NET

Module.NET 3 Les Assemblys.NET Module.NET Chapitre 3 Les Assemblys.NET 2011/2012 Page 1 sur 13 Contenu Cours... 3 3.1 - Définition d un assembly.net... 3 3.2 - Private assembly ou assembly privé.... 3 3.3 - Shared assembly ou assembly

Plus en détail

Projet de Veille Technologique

Projet de Veille Technologique Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...

Plus en détail

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite Bertil FOLLIOT et Gaël THOMAS Cette version est une préversion de l article accepté par «Technique de l ingénieur» (Hermes).

Plus en détail

Gestion de la mémoire

Gestion de la mémoire Gestion de la mémoire ENSIIE : Programmation avancée 1/20 Langages et mémoire Différence principale entre langages de haut niveau : OCaml, Java, C# langages de bas niveau : C, C++ : Gestion de la mémoire

Plus en détail

Java Licence Professionnelle CISII, 2009-2010

Java Licence Professionnelle CISII, 2009-2010 Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd abelaid@loria.fr Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet Beat Wolf 1, Pierre Kuonen 1, Thomas Dandekar 2 1 icosys, Haute École Spécialisée de Suisse occidentale,

Plus en détail

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) Introduction aux EDI, la plateforme Eclipse Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

SGDN. Projet: JAVASEC

SGDN. Projet: JAVASEC SGDN Projet: JAVASEC Type : rapport d étude Rapport d étude sur le langage Java Référence : JAVASEC_NTE_001 Nb pages : 227 Date : 14 octobre 2009 TABLE DES MATIÈRES 1 Introduction 8 1.1 Objet du document................................

Plus en détail

Exercices INF5171 : série #3 (Automne 2012)

Exercices INF5171 : série #3 (Automne 2012) Exercices INF5171 : série #3 (Automne 2012) 1. Un moniteur pour gérer des ressources Le moniteur MPD 1 présente une première version d'un moniteur, exprimé en pseudo-mpd, pour gérer des ressources le nombre

Plus en détail

Modélisation des interfaces matériel/logiciel

Modélisation des interfaces matériel/logiciel Modélisation des interfaces matériel/logiciel Présenté par Frédéric Pétrot Patrice Gerin Alexandre Chureau Hao Shen Aimen Bouchhima Ahmed Jerraya 1/28 TIMA Laboratory SLS Group 46 Avenue Félix VIALLET

Plus en détail

UEFI et bootkits PCI : le danger vient d en bas. Pierre Chifflier 6 juin 2013

UEFI et bootkits PCI : le danger vient d en bas. Pierre Chifflier 6 juin 2013 UEFI et bootkits PCI : le danger vient d en bas Pierre Chifflier 6 juin 2013 Article Plus de détails dans l article Séquence de démarrage Fonctions UEFI et utilisations : Interception du bootloader Tables

Plus en détail

Systèmes d exploitation

Systèmes d exploitation Systèmes d exploitation Virtualisation, Sécurité et Gestion des périphériques Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Novembre 2009 Gérard Padiou Systèmes d exploitation

Plus en détail

java : Langage et Environnement

java : Langage et Environnement java : Langage et Environnement 1. rintroduction ava est une nouvelle technologie conçue par Sun Microsystems l'un des premiers fabriquants des stations de travail Sun. Depuis son apparition, à peine plus

Plus en détail

Ready to Go? [Retour d'expérience sur un projet en Golang] HTML http://goo.gl/npljio PDF http://goo.gl/gzgdzw 1 / 44

Ready to Go? [Retour d'expérience sur un projet en Golang] HTML http://goo.gl/npljio PDF http://goo.gl/gzgdzw 1 / 44 Ready to Go? [Retour d'expérience sur un projet en Golang] HTML http://goo.gl/npljio PDF http://goo.gl/gzgdzw 1 / 44 Qui sommes nous? 2 / 44 Qui sommes nous? - Orange Orange est le 3ème opérateur mobile

Plus en détail

F. Barthélemy. 17 mai 2005

F. Barthélemy. 17 mai 2005 Typage de la généricité en Java F. Barthélemy 17 mai 2005 1 Le shéma général La g én éricit é en Java est un ajout r éalis é sur un langage existant depuis d éjà une dizaine d ann ées, avec des contraintes

Plus en détail

Agents Mobiles/Code Mobile

Agents Mobiles/Code Mobile Systèmes Répartis Agents Mobiles Agents Mobiles/Code Mobile Modèles d exécution répartie et agents mobiles Infrastructure pour les agents mobiles Expérimentations Conclusion 1 Modèles d exécution répartie

Plus en détail

Mémoire de stage de Master 2

Mémoire de stage de Master 2 Académie de Montpellier Sciences et Techniques du Languedoc Mémoire de stage de Master 2 effectué au Laboratoire d Informatique de Robotique et de Micro-électronique de Montpellier Spécialité : AIGLE Étude

Plus en détail

PLATE-FORME DE CLOUD COMPUTING SLAPOS. Intégration d applications

PLATE-FORME DE CLOUD COMPUTING SLAPOS. Intégration d applications PLATE-FORME DE CLOUD COMPUTING SLAPOS Intégration d applications Alain Takoudjou Kamdem Alain.takoudjou@lipn.univ-paris13.fr LIPN Université Paris 13 Vichy 2014 Présentation du cloud computing Le Cloud

Plus en détail

Le Framework.Net. Introduction. Pourquoi.Net?

Le Framework.Net. Introduction. Pourquoi.Net? Introduction. Pourquoi.Net? Le Framework.Net Cela fait une dizaine d'années que le monde du développement est bouleversé d'une part par la programmation objet et d'autre part par les applications web.

Plus en détail

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

Plus en détail

Groovy & Grails. Langage de script basé sur Java appliqué dans un environnement JEE

Groovy & Grails. Langage de script basé sur Java appliqué dans un environnement JEE Groovy & Grails Langage de script basé sur Java appliqué dans un environnement JEE Martin Le Bas 1 Xposé 2010 Plan Introduction Groovy Grails Conclusion Références Plan de la présentation Introduction

Plus en détail

Manuel logiciel client Java

Manuel logiciel client Java Manuel logiciel client Java 2 Copyright Systancia 2012 Tous droits réservés Les informations fournies dans le présent document sont fournies à titre d information, et de ce fait ne font l objet d aucun

Plus en détail

Configuration requise pour MuseumPlus et emuseumplus

Configuration requise pour MuseumPlus et emuseumplus Configuration requise pour MuseumPlus et emuseumplus Configuration requise pour MuseumPlus et emuseumplus Valable à partir du 1er juin 2012 Outre la configuration requise énoncée ci-après, veuillez tenir

Plus en détail

Android : Architecture - Compilation - Debug 1 / 31. Android : Architecture - Compilation - Debug. Sylvain Jubertie - Université d Orléans 2011-2012

Android : Architecture - Compilation - Debug 1 / 31. Android : Architecture - Compilation - Debug. Sylvain Jubertie - Université d Orléans 2011-2012 Android : Architecture - Compilation - Debug 1 / 31 Android : Architecture - Compilation - Debug Sylvain Jubertie - Université d Orléans 2011-2012 Android : Architecture - Compilation - Debug 2 / 31 1

Plus en détail

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion GenDbg : un débogueur générique Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion 2008 Qui sommes nous? Centre d électronique de l Armement (CELAR) Maîtrise et protection

Plus en détail

Le serveur HTTPd WASD. Jean-François Piéronne

Le serveur HTTPd WASD. Jean-François Piéronne Le serveur HTTPd WASD Jean-François Piéronne Sommaire Caractéristiques Architecture générale Performances Intégration dans OpenVMS Caractéristiques Implémentation complète HTTP/1.0 Méthodes "GET", "HEAD",

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

M2-GamaGora. Programmation Multi-Thread - partie 1. J.C. Iehl. November 13, 2008

M2-GamaGora. Programmation Multi-Thread - partie 1. J.C. Iehl. November 13, 2008 Programmation Multi-Thread - partie 1 November 13, 2008 pourquoi ça ne marche pas? et alors? introduction aux threads threads : pourquoi ça ne marche pas? et alors? un nouveau point d entrée (une fonction

Plus en détail

Présentation de Java. Olivier de Pertat IT GROUP

Présentation de Java. Olivier de Pertat IT GROUP Présentation de Java Olivier de Pertat IT GROUP Qu'est-ce que Java? Un langage de programmation orienté objets Une architecture de Virtual Machine Un ensemble d'api variées Un ensemble d'outils : le Java

Plus en détail

Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration

Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration Pluquet Frédéric July, 3rd 2012 Etude de techniques efficaces de versionnement d objets pour les langages orientés

Plus en détail

Une tasse de café fumante est

Une tasse de café fumante est INFORMATIQUE La technologie Java est prête à embarquer Java est une technologie de programmation puissante et fiable. Elle est omniprésente sur Internet, dans la téléphonie mobile et sur la plupart des

Plus en détail

Gestion hybride de la mémoire dynamique dans les systèmes Java temps-réel

Gestion hybride de la mémoire dynamique dans les systèmes Java temps-réel Gestion hybride de la mémoire dynamique dans les systèmes Java temps-réel Nicolas Berthier Stage de Magistère M encadré par Christophe Rippert et Guillaume Salagnac Laboratoire Vérimag Septembre 007 Résumé

Plus en détail

Temps Réel. Jérôme Pouiller Septembre 2011

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011 Temps Réel Jérôme Pouiller Septembre 2011 Sixième partie VI Architectures des OS temps réels J. Pouiller Temps Réel 172 / 197 18 Problématique des OS RT 19 Systèmes Symétriques

Plus en détail

Chapitre 2 : Abstraction et Virtualisation

Chapitre 2 : Abstraction et Virtualisation Virtualisation et Cloud Computing Chapitre 2 : Abstraction et Virtualisation Objectifs Présenter la notion de niveaux d abstraction séparés par des interfaces bien définies Description des avantages et

Plus en détail

SugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009

SugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009 SugarCubes Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués Paris, le 9 janvier, 2009 Plan 2 Les SugarCubes au dessus de J2ME Quelques résultats expérimentaux Les

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

Introduction à NetCDF

Introduction à NetCDF Introduction à NetCDF École normale supérieure L3 géosciences 2014/2015 Lionel GUEZ guez@lmd.ens.fr Laboratoire de météorologie dynamique Explications préliminaires Deux distinctions générales sur les

Plus en détail

plan Virtualisation Plan Systèmes d exploitation centralisés 1 IMA 13 mars 2015 Contrôle de l accès aux ressources Interface avec les systèmes invités

plan Virtualisation Plan Systèmes d exploitation centralisés 1 IMA 13 mars 2015 Contrôle de l accès aux ressources Interface avec les systèmes invités plan Virtualisation s d exploitation centralisés 1 IMA Sources : 13 mars 2015 Chapitre 16 de Operating System Concepts (9ème édition), de Silberschatz, Galvin et Gagne Cours de Gérard Padiou, 1IMA 2012-2013

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

Projet de développement

Projet de développement Projet de développement Introduction à Eclipse Philippe Collet Licence 3 MIAGE S6 2012-2013 http://miageprojet2.unice.fr/index.php?title=user:philippecollet/projet_de_développement_2012-2013 Plan r Application

Plus en détail

Développer de nouvelles fonctionnalités

Développer de nouvelles fonctionnalités 19 Développer de nouvelles fonctionnalités Chaque site e-commerce est unique. Bien que Magento soit une application riche, des besoins spécifiques apparaîtront et l ajout de modules deviendra nécessaire.

Plus en détail

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés) Introduction à la POO 1. Histoire de la POO 9 2. Historique du 12 La conception orientée objet 1. Approche procédurale et décomposition fonctionnelle 13 2. La transition vers l'approche objet 14 3. Les

Plus en détail

Gestion Mémoire. Informatique Embarquée M2 / 2014. Gestion Mémoire

Gestion Mémoire. Informatique Embarquée M2 / 2014. Gestion Mémoire Informatique Embarquée M2 / 24 24 Interaction CPU / mémoire Bus d'adresses CPU Bus de Données Bus de Contrôle 24 Architecture Von Neumann CPU contient: Instructions et Données CPU charge les instructions

Plus en détail

Instructions assembleur

Instructions assembleur Instructions assembleur 0001011011110110 0001011101101101 10001001 Instruction vue par le programmeur assembleur ou instruction élémentaire cible d'un compilateur Réalise une modification de l'état interne

Plus en détail

Examen de Système. Questions de cours : les threads. Licence 3 Informatique. ENS Cachan, mardi 13 janvier 2009

Examen de Système. Questions de cours : les threads. Licence 3 Informatique. ENS Cachan, mardi 13 janvier 2009 Examen de Système Licence 3 Informatique ENS Cachan, mardi 13 janvier 2009 Durée : 3h. Documents autorisés : livres, notes de cours. Langage de programmation : C. Des erreurs de syntaxe, de nom de fonction

Plus en détail

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année UFR Sciences et Techniques Licence S&T 1ère année Informatique UE 102 Architecture des ordinateurs et Algorithmique de base Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ UFR Sciences et Techniques

Plus en détail

Android. Présentation d Android. Florent Garin http://www.docdoku.com http://twitter.com/docdoku

Android. Présentation d Android. Florent Garin http://www.docdoku.com http://twitter.com/docdoku Android Présentation d Android 20 novembre 2010 Florent Garin http://www.docdoku.com http://twitter.com/docdoku Florent Garin Co-fondateur de DocDoku Société innovante IT http://www.docdoku.com Co-fondateur

Plus en détail

Synchronisation par. Rappels. Plan. Conditions et moniteurs (1/7) Inf 431 Cours 11. jeanjacqueslevy.net

Synchronisation par. Rappels. Plan. Conditions et moniteurs (1/7) Inf 431 Cours 11. jeanjacqueslevy.net Rappels Inf 431 Cours 11 un processus t (Thread) est un programme qui s exécute Synchronisation par mémoire partagée tstart lance l exécution concurrente de la méthode trun de t tinterrupt signale qu on

Plus en détail

Projet gestion d'objets dupliqués

Projet gestion d'objets dupliqués Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués

Plus en détail

Code Intermédiaire. Linéarisation Canonisation.

Code Intermédiaire. Linéarisation Canonisation. 2 2 2 s 2 2 s Code Intermédiaire Génération de Code Linéarisation Canonisation. Didier Rémy Octobre 2000 http://cristal.inria.fr/ remy/poly/compil/3/ http://w3.edu.polytechnique.fr/profs/informatique/didier.remy/compil/3/

Plus en détail

Programmation Android I. Introduction. Cours Android - F. Michel 1 / 57

Programmation Android I. Introduction. Cours Android - F. Michel 1 / 57 Programmation Android I. Introduction 1 / 57 Plan 1 Introduction 2 La plate-forme Android 3 Programmation Android 4 Hello World 2 / 57 Introduction Application mobile wikipédia Caractéristiques Cible :

Plus en détail

Software Engineering and Middleware A Roadmap

Software Engineering and Middleware A Roadmap Software Engineering and Middleware A Roadmap Ecrit par: Dr. Wolfgang Emmerich Présenté par : Mustapha Boushaba Cours : IFT6251 Wolfgang Emmerich Enseignant à University College London: Distributed Systems

Plus en détail

INITIATION AU LANGAGE JAVA

INITIATION AU LANGAGE JAVA INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal

Plus en détail

PERF UG. Programmation réactive. Février 2014

PERF UG. Programmation réactive. Février 2014 PERF UG Programmation réactive Février 2014 1 Sommaire Contexte Architectures Architecture des Tirs Protocole de test Résultats 2 Contexte 3 Contexte Recevoir en temps réel des informations de capteur

Plus en détail