IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

[dlopen & dlclose] gestion du chargement et déchargement des bibli par l'os?


Sujet :

Linux

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 159
    Points : 71
    Points
    71
    Par défaut [dlopen & dlclose] gestion du chargement et déchargement des bibli par l'os?
    Salut,

    dlopen permet de charger une bibliothèque et dlclose de la décharger de la mémoire.

    Dans le cas de plusieurs exécutables qui charge la meme bibliothèque (qui appellent dlopen sur la meme bibliothèque), je voudrais savoir si le système d'exploitation se rend compte qu'on veut charger deux fois la meme biblio? Est ce qu'il renvoit juste le handle de la biblio (sans la charger une 2ème fois) à l'exécutable qui s'est lancé en 2ème lieu de sorte qu'on ait une seule instance de cette biblio en mémoire?

    Maintenant plaçons nous dans le cas où la biblio est chargée une seule fois dans la mémoire:

    Supposons que le 1er exec se termine alors que le 2eme est toujours en cours.
    Est ce que le fait d'appeler dlclose par le 1er exec décharge réellement la biblio ou bien il se rend compte qu'il y a un autre exécutable qui est en train de l'exploiter et donc il ne la décharge pas (en dépit de l'appel de dlclose par le 1er exec) jusqu'à ce qu'il y ait plus d'exécutable l'utilisant?

    Merci pour toutes les réponses

    @+

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Bien sûr les bibliothèques partagées ne sont chargés qu'une seule fois en mémoire quel que soit le nombre d'applications les utilisant, c'est le principe des bibliothèques partagées ! (pour t'en convaincre : essaie de charger une application KDE dans un Gnome que tu viens d'ouvrir, ou la même application dans un KDE déjà bien utilisé...)

    --
    Jedaï

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 159
    Points : 71
    Points
    71
    Par défaut
    Je t'ai peut etre pas bien compris. Qu'est ce que tu veux dire pa bibliothèques partagées?

    Est ce que cela reste vrai même avec une bibliothèque .so que j'ai créee?

    Merci

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Les .so sont des bibliothèques partagés (.so doit vouloir dire "shared object" je crois) sous Unix, tout comme les .dll sous Win32.

    --
    Jedaï

  5. #5
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 129
    Points
    28 129
    Par défaut
    Bonjour,

    Citation Envoyé par vonemya Voir le message
    Dans le cas de plusieurs exécutables qui charge la meme bibliothèque (qui appellent dlopen sur la meme bibliothèque), je voudrais savoir si le système d'exploitation se rend compte qu'on veut charger deux fois la meme biblio? Est ce qu'il renvoit juste le handle de la biblio (sans la charger une 2ème fois) à l'exécutable qui s'est lancé en 2ème lieu de sorte qu'on ait une seule instance de cette biblio en mémoire?
    1 seul chargement oui. C'est à ca que sont destinées les bibliothèques partagées (sous Unix, ces fichiers commancent par lib et finissant par .so pour "Shared Object")

    Citation Envoyé par vonemya Voir le message
    Maintenant plaçons nous dans le cas où la biblio est chargée une seule fois dans la mémoire:

    Supposons que le 1er exec se termine alors que le 2eme est toujours en cours.
    Est ce que le fait d'appeler dlclose par le 1er exec décharge réellement la biblio ou bien il se rend compte qu'il y a un autre exécutable qui est en train de l'exploiter et donc il ne la décharge pas (en dépit de l'appel de dlclose par le 1er exec) jusqu'à ce qu'il y ait plus d'exécutable l'utilisant?
    D'après toi ? Que se passerait-il pour les autres appli si l'une d'entre elle fait un dlclose et que cela décharge la lib de la mémoire ?

Discussions similaires

  1. Application de gestion de chargement
    Par detekt dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 08/08/2013, 15h16
  2. Chargement et redimensionnement des images par le navigateur
    Par martinn7 dans le forum Performance Web
    Réponses: 3
    Dernier message: 05/12/2012, 04h52
  3. Réponses: 3
    Dernier message: 04/04/2011, 09h48
  4. MediaElement et gestion du chargement.
    Par ChapsF dans le forum Silverlight
    Réponses: 0
    Dernier message: 10/05/2010, 05h38
  5. Gestion de l'évolution de ma base par numéro de version
    Par jackfirst72 dans le forum Outils
    Réponses: 4
    Dernier message: 16/03/2005, 14h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo