Boucles processus (Unix)

Résolu
Farkras -  
fiddy Messages postés 11069 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

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
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
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
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
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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