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 :

comment déterminer le nombre de proceesus créés ?


Sujet :

Linux

  1. #1
    Membre régulier
    Homme Profil pro
    élève ingenieur
    Inscrit en
    Août 2015
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : élève ingenieur
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2015
    Messages : 69
    Points : 72
    Points
    72
    Par défaut comment déterminer le nombre de proceesus créés ?
    Salut à tous .

    Combien de processus svp engendre l’exécution du programme C suivant .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    # include < unistd .h>
    int main ( void )
    {
    fork () && ( fork () || fork () );
    sleep (2);
    return 0; }
    le résultat est : Le processus père engendre dans l’ensemble 3 autres processus. je n'ai pas compris comment on a abouti au résultat. pouvez vous m'expliquer svp .

    merci .

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Avril 2014
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 498
    Points : 1 178
    Points
    1 178
    Par défaut
    Bonjour,

    Le résultat est : bash crée un processus père qui va créer deux fils dont un des fils va créer un autre fils;
    Avant de continuer, rappelons que l'opérateur && ou || ne vérifie pas la seconde condition si la première est fausse, contrairement à l'opérateur & ou |.

    explications :

    *le premier fork() crée un processus (appelons le père)
    Dans le code du père, fork() possède un retour !=0 et donc le père va continuer de lire la ligne et donc engendrer un nouveau processus.
    Dans le code du fils, le code retour étant à 0, il ne lira pas la suite de la ligne et attaque donc le sleep(2); Il s'agit d'un fils stérile (disons le comme ca)

    *le père attaque donc le second fork() et crée un deuxième processus
    Dans le code du père, le code retour est != 0 donc le père n'évaluera pas le troisième fork() et s'attaquera au sleep(2)
    Dans le code du fils, fork() vaut 0 et doit donc évaluer le résultat du troisième fork() vu qu'il n'a pas assez d’éléments pour évaluer la partie entre parenthèses.

    *puis le fils crée un petit fils via le troisième fork()

    Voilou si j'ai pas été clair fais le moi savoir

  3. #3
    Membre régulier
    Homme Profil pro
    élève ingenieur
    Inscrit en
    Août 2015
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : élève ingenieur
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2015
    Messages : 69
    Points : 72
    Points
    72
    Par défaut
    Merci bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment déterminer le nombre de jours d'un mois ?
    Par BAMBADJI dans le forum Général Java
    Réponses: 11
    Dernier message: 04/02/2015, 01h27
  2. Réponses: 7
    Dernier message: 04/06/2008, 14h53
  3. Réponses: 3
    Dernier message: 08/03/2008, 11h01
  4. Réponses: 5
    Dernier message: 24/04/2007, 11h17
  5. Comment déterminer si un .class est un nombre ?
    Par kisame dans le forum Langage
    Réponses: 9
    Dernier message: 10/04/2006, 14h14

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