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

Threads & Processus C++ Discussion :

processus fils en faveur


Sujet :

Threads & Processus C++

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 82
    Par défaut processus fils en faveur
    Bonjour

    vous connaissez la fonction wait(...) qui permet au processus appelant d'attendre la mort d'un de ses fils. Alors moi je voudrais savoir comment faire pour favoriser les pères aux fils de tel façon que les pères meurt en premier. Est ce que je dois toujours utilser le wait dans les blocs de vérification du PID du processus ou bien il y a autre solution ?

    merci

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Il est tout à fait possible qu'un père meurt alors que son fils continue à vivre sa vie. C'est d'ailleurs comme cela que l'on lance (ou lancait) un démon sous Unix.

    L'appel à wait() n'est absolumment pas obligatoire.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Mais n'y a-t-il pas un problème de processus "zombi" dans ce cas ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 82
    Par défaut
    oui exactement ce que je voulais mais tu sais à l'intérieur d'un test comme celui ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(fork()  > 0){
    //processus père
    wait(0); // attendre la fin des fils
    //...
     
    }
    c'est le processus père qui doit attendre.
    alors moi je voudrais pour un test comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(fork() == 0){
    //concevoir un wait ou une attente pour le fils jusqu'à que le père termine
    //son éxecution
    //peut être wait() avec un status particulier ou bien 
    //waitpid(...) ???
     
    }

  5. #5
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Mais n'y a-t-il pas un problème de processus "zombi" dans ce cas ?
    Je viens de retrouver un article pour créer un démon unix avec tout le séquencement pour ne pas créer de zombies :
    Programmation d'un démon Unix. C'est un article paru dans Linux magazine.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 82
    Par défaut
    j'avais essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (fork() == 0) {
    waitpid(pid_pere,&status,0);
    //... code du fils
     
    }
    mais ça ne marchais pas ! j'ai toujours des processus fils qui terminent avant leurs pères.

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Un fils ne peut pas attendre la fin de son père sous les systèmes Unixoïdes.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 82
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Un fils ne peut pas attendre la fin de son père sous les systèmes Unixoïdes.
    s'il vous plait est ce que je peux savoir pourquoi le code précédent ne marche pas ?

  9. #9
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Il me semble que wait et waitpid ne peuvent attendre que les processus fils, c'est tout.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 82
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Il me semble que wait et waitpid ne peuvent attendre que les processus fils, c'est tout.
    mais pourtant je vous tires cette remarque de la documentation de waitpid disponible ici :
    ...
    La valeur de pid peut être l’une des suivantes :

    < -1 Attendre la fin de n’importe quel processus fils appartenant au
    groupe de processus d’ID -pid.

    -1 Attendre n’importe lequel des processus fils.

    0 Attendre la fin de n’importe quel processus fils du même groupe
    que l’appelant.

    > 0 Attendre la fin du processus numéro pid.
    ...

  11. #11
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Je peux aussi me gourer complètement. Je programme plutôt sous Win32, où l'on n'a jamais ce genre de problème...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Tuer les processus fils
    Par soony dans le forum Linux
    Réponses: 4
    Dernier message: 12/12/2006, 13h08
  2. Executer commande dans un processus fils !
    Par jérôme.D dans le forum POSIX
    Réponses: 6
    Dernier message: 23/11/2006, 22h14
  3. Tuer processus fils
    Par lornak dans le forum POSIX
    Réponses: 7
    Dernier message: 29/05/2006, 10h00
  4. terminaison du processus fils
    Par zahira dans le forum POSIX
    Réponses: 3
    Dernier message: 08/04/2006, 13h35
  5. Partage d'une variable entre les processus fils
    Par Mehdi Feki dans le forum Linux
    Réponses: 7
    Dernier message: 09/01/2005, 13h34

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