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 :

Utilisation de /proc pour communiquer entre deux process


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 100
    Par défaut Utilisation de /proc pour communiquer entre deux process
    Bonjour

    Est-il possible d'utiliser le module /proc pour communiquer entre deux process
    cad => creer un module kernel qui gere les entrees dasn le repertoire /proc

    et le premier module va ecrire des informatiosn dasn les differentes entreee et le deuxieme module va aller les lire

    Comment cette methode peut etre comparee par rapport a l'utilisation de la memoire partagee?

    Est-il necessaire d'utiliser des semaphores dans le module kernel pour gerer la concurrence d'acces? ou bien l ekernel gere bien la concurrence d'acces des entrees du repertoire /proc

    Tout commentaire est le bienvenu

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 875
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Mokhtar BEN MESSAOUD Voir le message
    Bonjour

    Est-il possible d'utiliser le module /proc pour communiquer entre deux process
    cad => creer un module kernel qui gere les entrees dasn le repertoire /proc

    et le premier module va ecrire des informatiosn dasn les differentes entreee et le deuxieme module va aller les lire
    Ben c'est une bête communication via fichier. Un processus écrit un fichier et un autre va le lire. Que ce soit dans /proc ou ailleurs le principe ne change pas (sauf que /proc n'est pas fait pour ça)

    Citation Envoyé par Mokhtar BEN MESSAOUD Voir le message
    Comment cette methode peut etre comparee par rapport a l'utilisation de la memoire partagee?
    Ah ben entre des accès mémoires et des accès disques, à ton avis qui est le plus rapide ???

    Citation Envoyé par Mokhtar BEN MESSAOUD Voir le message
    Est-il necessaire d'utiliser des semaphores dans le module kernel pour gerer la concurrence d'acces? ou bien l ekernel gere bien la concurrence d'acces des entrees du repertoire /proc
    Le kernel ne gère que la concurrence d'accès sur les fichiers pipe. C'est d'ailleurs le principe des impressions => un processus "lpr" va écrire le fichier dans le pipe et un second processus "lpd" lit le pipe et l'envoie à l'imprimante. Et tant que l'un des deux n'a pas fini, l'autre est bloqué (ce qui évite le mélange de plusieurs fichiers dans l'imprimante). Donc pour tout autre pb de concurrence, tu peux utiliser les sémaphores ou les outils plus spécifiques comme lock() et flock()
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 100
    Par défaut
    Ben c'est une bête communication via fichier. Un processus écrit un fichier et un autre va le lire. Que ce soit dans /proc ou ailleurs le principe ne change pas (sauf que /proc n'est pas fait pour ça)
    Ah ben entre des accès mémoires et des accès disques, à ton avis qui est le plus rapide ???
    Je suis pas d'accord les fichiers sous /proc ne sont pas des fichiers ordinaires sur le disque c'est plutot une interface avec les structures de données du noyau
    http://man.developpez.com/man5/proc.5.php

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 615
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 615
    Billets dans le blog
    2
    Par défaut
    oui, mais inversement :

    • c'est normalement réservé au système

    • il faut que tu connaisses le pid (donc dynamique)...



    Question :


    Que veux-tu faire exactement ?

    Il est TRES TRES rare d'avoir , en dehors du Kernel, BESOIN de ce genre de choses...

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 100
    Par défaut
    il faut que tu connaisses le pid
    pourquoi on a besoin de connaitre le pid

    Que veux-tu faire exactement ?
    J'ai besoin de recuperer des statistiques d'un module de communication a partir d'un GUI donc les deux solutions envisagees c'est utiliser la memoire partagee et verrouileer l'acces par semaphore
    le probleme qui se pose c'est que l eprocess de communication doit attendre la liberation de la semaphore pour pouvoi ecrire ce qui deteriore les performances du process de communication
    une autre soultion envisagee est de creer un module kernel qui n efait que lire et ecrire des entree sur /proc
    le module de communication met a jour les parametres de statistiques sous /proc et le le GUI n'a qu'aller les recuperer de facon periodique mais je pense que meme dans cette solution on a besoin de verrouiller par semaphore

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 615
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 615
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Mokhtar BEN MESSAOUD Voir le message
    pourquoi on a besoin de connaitre le pid
    Dans le lien que tu as toi-même cité :

    /proc est un pseudo-système de fichiers qui est utilisé comme interface avec les structures de données du noyau pour éviter d'avoir à interpréter /dev/kmem. La plupart des fichiers sont en lecture seule, mais quelques uns permettent la modification de variables du noyau.
    La description suivante fournit un aperçu de la hiérarchie /proc.

    [nombre]
    Il existe un sous-répertoire pour chaque processus en cours. Le sous-répertoire prend comme nom le PID du processus. Chaque sous-répertoire contient les pseudo-fichiers et pseudo-répertoires suivants.



    Citation Envoyé par Mokhtar BEN MESSAOUD Voir le message
    J'ai besoin de recuperer des statistiques d'un module de communication a partir d'un GUI donc les deux solutions envisagees c'est utiliser la memoire partagee et verrouileer l'acces par semaphore
    le probleme qui se pose c'est que l eprocess de communication doit attendre la liberation de la semaphore pour pouvoi ecrire ce qui deteriore les performances du process de communication
    une autre soultion envisagee est de creer un module kernel qui n efait que lire et ecrire des entree sur /proc
    le module de communication met a jour les parametres de statistiques sous /proc et le le GUI n'a qu'aller les recuperer de facon periodique mais je pense que meme dans cette solution on a besoin de verrouiller par semaphore
    pourquoi faire simple quand on peut faire compliqué

    je ne vois pas ce qui t'empêche d'écrire dans un fichier normal, et de lire !!!

    Mauvaise (très mauvaise) conception....

Discussions similaires

  1. Attendre qu'un attribut change de valeur pour communiquer entre deux classes
    Par moithibault dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 07/07/2011, 23h54
  2. Réponses: 2
    Dernier message: 27/06/2011, 12h41
  3. Réponses: 4
    Dernier message: 21/08/2009, 10h48
  4. Utilisation de liens OLE pour communiquer entre Excel et MySQL
    Par popsmelove dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 20/08/2009, 18h25
  5. TList partagée entre deux process.
    Par swirtel dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/01/2005, 11h48

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