Big-GC : Un ramasse-miette concurrent pour grands volumes de données

Documents pareils
LA mémoire principale est le lieu où se trouvent les programmes et les

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Initiation à la sécurité

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

as Architecture des Systèmes d Information

Le Network File System de Sun (NFS)

Procédure d installation pour WinEUR PROCÉDURE D INSTALLATION POUR WINEUR. Copyright GIT SA 2015 Page 1/16

IFT Systèmes d exploitation - TP n 1-20%

SYSTÈME DE GESTION DE FICHIERS

Plan du cours. Historique du langage Nouveautés de Java 7

Projet gestion d'objets dupliqués

Concept de machine virtuelle

DEVELOPPEMENT ET MAINTENANCE DE LOGICIEL: OUTIL DE PILOTAGE

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

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

Cours 6 : Tubes anonymes et nommés

Programmation de l'api Video for Linux

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

La technologie Java Card TM

Structure fonctionnelle d un SGBD

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Sommaire. 3. Les grands principes de GFS L architecture L accès de fichier en lecture L accès de fichier en écriture Bilan

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Partie 7 : Gestion de la mémoire

Session 8: Android File System

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Projet de Veille Technologique

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

Croisière au cœur d un OS Étape 4 : Mise en place de la pagination

La carte à puce. Jean-Philippe Babau

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

GESTION DES FICHIERS C/UNIX

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Les structures de données. Rajae El Ouazzani

Programmation système I Les entrées/sorties

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

Maarch Framework 3 - Maarch. Tests de charge. Professional Services. 11, bd du Sud Est Nanterre

Architecture des ordinateurs

Introduction. Adresses

Grid Technology. ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Technology Group Information Technology Department

Remote Method Invocation (RMI)

Traduction des Langages : Le Compilateur Micro Java

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

Cours 1 : La compilation

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

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

Cours de Programmation Impérative: Zones de mémoires et pointeurs

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

Gestion répartie de données - 1

ArcGis Server 10 (sur VM CentOS bits) DOCUMENT D INSTALLATION

Les Géodatabases en 9.2

Système de Gestion de Fichiers

CALENDRIER DE FORMATION 2015

Compression de Données - Algorithme de Huffman Document de Conception

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Accès au Serveur de PAIE «SPV» par INTERNET Paramétrage du poste de travail «Windows»

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

Certificat Big Data - Master MAthématiques

Communications performantes par passage de message entre machines virtuelles co-hébergées

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Systèmes d exploitation

Synchro et Threads Java TM

Conception de circuits numériques et architecture des ordinateurs

Conventions d écriture et outils de mise au point

Prise en main d un poste de travail sous Windows sur le réseau du département MMI de l'upemlv. d après M. Berthet et G.Charpentier

Cloud Computing : Utiliser Stratos comme PaaS privé sur un cloud Eucalyptus

Introduction à MapReduce/Hadoop et Spark

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Approche Contract First

<Insert Picture Here> Solaris pour la base de donnés Oracle

Détection de pollution maritime avec GNU/Linux. Eric Bénard - eric@eukrea.com - 08 juillet 2010

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

Chapitre 2. Classes et objets

LISTE D OPTIONS DE LICENCE

Documentation d information technique spécifique Education. PGI Open Line PRO

Modélisation des interfaces matériel/logiciel

Introduction à la programmation concurrente

Virtual Box Mettez un PC dans votre... PC

Exécutif temps réel Pierre-Yves Duval (cppm)

GESTION DE LA MEMOIRE

Gestion d Epargne de Crédit & Comptabilité

GroupWise. Novell. Démarrage rapide.

REALISATION d'un. ORDONNANCEUR à ECHEANCES

IV- Comment fonctionne un ordinateur?

Présentation des mastères de l ESEN

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

Structure de base d un ordinateur

ADMINISTRATION DE RESEAUX SOUS LOGICIEL «OPEN SOURCE»

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Développement Logiciel

Petit guide pour l installation de CVW sous Linux

SPECIFICATION ET DESCRIPTION DU MULTICAST FIABLE DANS ETOILE

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Famille Backup Exec Backup Exec 12.5 Backup Exec System Recovery 2010

Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et

Transcription:

Projet de Fin d Études Big-GC : Un ramasse-miette concurrent pour grands volumes de données Réalisé par Abdel CHITOU & Dramane SANGARE Encadré par Gaël Thomas & Elisabeth Brunet

Problématique Big Data: plusieurs Po de données analysées par jour Chaque machine du réseau gère plusieurs centaines de Go à chaque instant Énorme pression sur le ramasse-miette des JVMs Besoin d un nouvel algorithme de ramassemiettes Problématique

Le projet Big-GC But du projet Big-GC à long terme Collecter la mémoire qui contient les objets les moins utilisés lors de l exécution d une application Notre contribution Identifier et libérer en mémoire les objets les moins utilisés lors de l exécution d une application Solution

But du PFE Se servir du matériel pour identifier les emplacements mémoires les moins récemment utilisés Ecrire un module Linux permettant de transférer cette information à un processus simulant une machine virtuelle Java et son application Java écrire une petite application simulant une machine virtuelle Java et son application Solution

Plan Rappel de quelques notions importantes sur le noyau Linux Application de simulation Mise en œuvre du module Linux Démonstration Solution

Rappel de quelques notions sur le noyau Linux Architecture de la solution

Gestion mémoire dans Linux Processus Zone mémoire du processus Adresse logique PTE PMD PGD Access Bit = 1 MM_STRUCT Solution

Module noyau Linux insmod module.ko init_module() TERMINAL MODULE KERNEL rmmod module.ko cleanup_module() Solution

Communication Module-Processus open() device_open() Côté User read() write() DEVICE «/dev/lien» device_read() device_write() Côté Kernel close() device_release() terminal$ mknod /dev/lien c 402 0 Solution

Application de simulation Architecture de la solution

Application de simulation Principe Simuler un tas Java avec la fonction mmap() Simuler des écritures dans le tas Java Interroger périodiquement le module Linux pour obtenir les emplacements mémoires LRU Donc 2 parties: les processus d accès et de contrôle Architecture de la solution

Programme utilisateur : Processus d'accès Simuler un tas Java : mmap() (length = 50Mo) void *pa = (void *)mmap(null, length, PROT_READ PROT_WRITE, MAP_SHARED MAP_ANONYMOUS, -1, 0); Simuler des écritures dans le tas Java *((volatile int *)(pa+pas)) = 42; (pas < length) Envoi de l'adresse pa au module noyau via un write() sur le device Initialisation du timer du processus de contrôle géré par une SIGACTION sur un signal SIGALRM Implémentation de la solution

Programme utilisateur : Processus de contrôle Fonction timer_handler() invoquée par la SIGACTION du processus d'accès Communication avec le module noyau pour récupérer le résultat des traitements du module : les pages LRU : Ouverture du device : fonction open() Lecture du résultat des traitements : fonction read() Fermeture du device : fonction close() Implémentation de la solution

Module noyau Linux Architecture de la solution

Module noyau LINUX Fonction de chargement-déchargement du module int init_module( void ) : Chargement du module register_chrdev(major, DEVICE_NAME, &fops) o o o major : numéro majeur utilisé pour la création du device DEVICE_NAME : variable représentant le nom du device utilisé "lien" dans le dossier /dev fops : structure représentant les fonctions open, read, write et close du device void cleanup_module(void) : Déchargement du module lunregister_chrdev(major, DEVICE_NAME) Implémentation de la solution

Module noyau LINUX Fonction de communication avec le programme utilisateur via le device Open() : Ouverture du device Write() : Reçoit l adresse du segment virtuelle du segment à inspecter (adresse envoyé par mmap) Read() : Renvoie une liste de 100 pages LRU Close() : Fermeture du device Implémentation de la solution

Read() Récupération de mm_struct: struct mm_struct *my_mm = current->mm_struct; Pour toute @ virtuelle, trouver le PTE associé et renvoyer son @ si Acces Bit = 1 for(i=start; i<end; i+=pagesize) { pte_t *ptep = pte_offset(i); pte_t pte = *ptep; if(pte_present(pte) && pte_young(pte)) { write_to_user(i); *ptep = pte & ~ACCESSED; } } Implémentation de la solution

User Land Mémoire virtuelle Rappel de l architecture de la solution Processus d accès Projection en mémoire Processus de contrôle Affiche les adresses des pages LRU libérées Kernel Land Table des Pages Access Bit = 1? Module ASR_PFE Consulte la table des pages pour identifier et libérer les pages LRU Access Bit = 0 Architecture de la solution

Démonstration de la solution Démonstration de la solution

Difficultés rencontrées Conclusion et Perspectives Conclusion et Perspectives

Difficultés rencontrées Faible maîtrise de la programmation C au niveau noyau en Linux L indisponibilité de document de référence traitant du sujet de notre projet de fin d études Le manque de temps pour la documentation Implémentation de la solution

Conclusions et Perspectives Réalisation d un module Linux identifiant les zones mémoires LRU Acquisition d une grande maîtrise des structures internes d un noyau Linux Le livrable servira de base pour construire le ramasse-miette pour big data Implémentation de la solution

Merci pour votre attention! Fin

Projet de Fin d Études Big-GC : Un ramasse-miette concurrent pour grands volumes de données Réalisé par Abdel CHITOU & Dramane SANGARE Encadré par Gaël Thomas & Elisabeth Brunet