Boucles processus (Unix)

Résolu/Fermé
Signaler
-
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
-
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

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
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
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
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
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 803
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
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 803
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