Boucles processus (Unix)

Résolu
Farkras -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Depuis ce lien http://dpt-info.u-strasbg.fr/~simon.thierry/enseignement/06-07/FSE-L2/td.pdf
j'essaye de faire l'exercice suivant :

Écrivez un programme ayant la syntaxe suivante :
matproc n m
L'action de ce programme doit être de générer n
processus, chacun d'entre-eux devant générer n
processus à son tour, et ainsi de suite jusqu'à m
niveaux.
Combien de processus sont générés au total ?

Je ne comprends absolument pas...
Si je prend littéralement le sujet, ça donnerait :
" générer n
processus, chacun d'entre-eux devant générer n
processus à son tour, chacun d'entre-eux devant générer n
processus à son tour, chacun d'entre-eux devant générer n
processus à son tour etc." ce qui n'a pas de sens...

C'est pas plutôt n-1 (ou n+1) pour la 2ème "génération" ?
Que signifie "niveaux" ?

Soit l'énoncé est mal formulé, soit je suis idiot...

Merci d'avance !

2 réponses

  1. DDD
     
    Bon vu que tu as un peu de mal je te fais un schema

    http://dumpt.com/img/files/5rpwmek0zm5an0oz6vku.jpg
    Le process générateur est en haut n=2 m=3

    Alors tu as trouvé la réponse à ta question ?
    Non ?

    http://www.dumpt.com/img/files/xjwlaiotnyi6x0xtvo1t_thumb.jpg
    Voila, après dans de cas je ne compte pas le premier process qui créé les autres process si c'est le cas tu mets plus 1, pas sur la somme évidemment mais avec des parenthèses autour.
    0
    1. Farkras
       
      Merci,
      je comprend ton exemple.
      Mais l'utilisateur n'a pas le droit de demander un n différent de 2 du coup ?
      Parce que c'est pas dit dans l'énoncé...
      0
    2. DDD
       
      Bha si tu calculle la somme de n^m avec m en partant de 1 vers x tu obtiens
      (n(n^x -1))/ (n-1)

      Ainsi pour l'exemple tu as (2*(2^3-1))/(n-1) ce qui donne (2*7)/(1) = 14

      Ainsi pour une valeur de n=25 et m=5 tu obtiens
      : 10 172 525 si mes calculs sont correct

      Tu es en quel niveau d'études?
      0
    3. Caramel
       
      Non mais je comprends le calcul, c'est juste que si l'utilisateur entre un n à 3, je vois pas exactement comment générer 3 processus à partir d'un seul.
      fork() n'en créant que 2...
      0
    4. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      fork() n'en créant que 2...
      Non. fork() ne créé qu'un processus à chaque appel. Il suffit donc de l'appeler autant de fois que tu as besoin de processus...
      0
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Bonjour,

    Le programme génère n processus (1er niveau)
    Chacun des processus créés génère à leur tour n processus (2ème niveau).
    Chacun des processus nouvellement créés génère à leur tour n processus (3ème niveau).
    Ainsi de suite jusqu'au niveau m.

    Cdlt,
    0