A voir également:
- La fonction fork()
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Fonction filtre excel n'existe pas - Forum Excel
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
4 réponses
yg_be
Messages postés
23323
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 novembre 2024
Ambassadeur
1 551
11 août 2017 à 21:36
11 août 2017 à 21:36
bonsoir, que ne comprends-tu pas?
les pid n'ont pas de signification, chaque processus du système doit simplement avoir un pid unique, différent des pid de celui de chacun des autres processus.
les pid n'ont pas de signification, chaque processus du système doit simplement avoir un pid unique, différent des pid de celui de chacun des autres processus.
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
Modifié le 16 août 2017 à 01:49
Modifié le 16 août 2017 à 01:49
Un processus avec un pid pair fait : fork() N fois.
Un processus avec un pid impair a le test faux et s'arrête.
Pour le processus initial i vaut 0 1 2 3 4 donc N vaut 5, il aura 5 fils.
Pour un processus fils, i pars du i du père jusqu'à 4
L'exercice n'a pas de sens comme l'a déjà dit ElementW. C'est une grave erreur d'incompréhension de ce qu'est un processus!
Un processus avec un pid impair a le test faux et s'arrête.
Pour le processus initial i vaut 0 1 2 3 4 donc N vaut 5, il aura 5 fils.
Pour un processus fils, i pars du i du père jusqu'à 4
pere pid2400,i=0 -> fils pid2401,i=0 -> pid2401,stop pere pid2400,i=1 -> fils pid2402,i=1 Mais ici 2 process sont en concurrence fils pid2402,i=1 -> petit-fils pidXXXX,i=1 pere pid2400,i=2 -> fils pidYYYY,i=2Impossible de savoir celui qui sera le premier! L'un produira le pid2403 qui s'arrête, et l'autre le pid2404. Mais sera-ce "petit-fils pid2404,i=1" ou "fils pid2404,i=2" ? C'est ce que tu as dis, on ne peut pas savoir si 2404 sera fils de 2400 ou de 2402.
L'exercice n'a pas de sens comme l'a déjà dit ElementW. C'est une grave erreur d'incompréhension de ce qu'est un processus!
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
16 août 2017 à 08:31
16 août 2017 à 08:31
Bonjour,
Les PID sont uniques pour l'ensemble du système d'exploitation, donc d'autres programmes qui s'exécutent en même temps possèdent également des PID dont les valeurs ne pourront pas être données à ton programme.
La seule valeur importante dans le fork c'est le 0, ça te permet de distinguer si tu es dans le processus père ou le processus fils, pour le reste la valeur du PID n'a aucune importance, ils sont juste uniques pour les processus vivants à un instant donné.
À lire : que fait un fork ?
Les PID sont uniques pour l'ensemble du système d'exploitation, donc d'autres programmes qui s'exécutent en même temps possèdent également des PID dont les valeurs ne pourront pas être données à ton programme.
La seule valeur importante dans le fork c'est le 0, ça te permet de distinguer si tu es dans le processus père ou le processus fils, pour le reste la valeur du PID n'a aucune importance, ils sont juste uniques pour les processus vivants à un instant donné.
À lire : que fait un fork ?
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
Modifié le 11 août 2017 à 21:57
Modifié le 11 août 2017 à 21:57
'lut,
non seulement comme le dit yg_be les PID n'ont pas de réelle signification,
en plus, à moins que tu ne sois sur un UNIX(-like) temps réel (indice: ce n'est pas ton cas), l'attribution des PID est faite au hasard dans la hiérarchie des processus car tu n'as aucune garantie de quel process va fork() avant l'autre.
L'ordonnanceur (scheduler) se réserve le droit d'exécuter tel ou tel process dans l'ordre qu'il veut, potentiellement en parallèle dans le cas d'un système multi-cœur, avec un ordre d'exécution allant, pour un ensemble de processus connus, de quasi-prévisible (pour
from human import idiocy
del idiocy
non seulement comme le dit yg_be les PID n'ont pas de réelle signification,
en plus, à moins que tu ne sois sur un UNIX(-like) temps réel (indice: ce n'est pas ton cas), l'attribution des PID est faite au hasard dans la hiérarchie des processus car tu n'as aucune garantie de quel process va fork() avant l'autre.
L'ordonnanceur (scheduler) se réserve le droit d'exécuter tel ou tel process dans l'ordre qu'il veut, potentiellement en parallèle dans le cas d'un système multi-cœur, avec un ordre d'exécution allant, pour un ensemble de processus connus, de quasi-prévisible (pour
SCHED_DEADLINE) à beaucoup plus hasardeux pour Completely Fair Scheduler.
from human import idiocy
del idiocy
Salut,
Au faite, c'est un exercice
int i=0;
for(fork(); ((getpid()%2 ==0)&&(i<4); (i++,fork()));
while(wait(NULL)!=-1);
on suppose que le pid du processus correspond a ce programme est 2400 et la numérotation des processus est séquentielle
donnez le résultat à l'exécution.
normalement il nous donne l'arbre que j'ai présenté mais j'ai pas compris comment affecter les num du PIDs.
Au faite, c'est un exercice
int i=0;
for(fork(); ((getpid()%2 ==0)&&(i<4); (i++,fork()));
while(wait(NULL)!=-1);
on suppose que le pid du processus correspond a ce programme est 2400 et la numérotation des processus est séquentielle
donnez le résultat à l'exécution.
normalement il nous donne l'arbre que j'ai présenté mais j'ai pas compris comment affecter les num du PIDs.
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
>
Anonyme09
16 août 2017 à 02:25
16 août 2017 à 02:25
Avec ce que je viens de dire, la seule garantie que tu auras avec une attribution séquentielle des PID c'est une relation d'ordre sur ce PID entre les processus pères et fils: les fils auront un PID plus grand que leur pères.
Pour être sûr qu'on puisse obtenir un arbre qui ne changera pas selon les cas, il faut en plus que l'ordonnanceur ait un ordre d'exécution défini, et ce semble ne pas être le cas dans ton exercice. Demande des précisions.
Pour être sûr qu'on puisse obtenir un arbre qui ne changera pas selon les cas, il faut en plus que l'ordonnanceur ait un ordre d'exécution défini, et ce semble ne pas être le cas dans ton exercice. Demande des précisions.
yg_be
Messages postés
23323
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 novembre 2024
1 551
>
Anonyme09
16 août 2017 à 08:51
16 août 2017 à 08:51
si c'est un exercice avec des suppositions, il suffit de le résoudre par raisonnement, non?
Anonyme09
>
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
16 août 2017 à 13:51
16 août 2017 à 13:51
l'algorithme d’ordonnancement est FIFO ou (FCFS)
Modifié le 18 août 2017 à 10:06
En fait, c'est un exercice
On suppose que le pid du processus correspond a ce programme est 2400 et la numérotation des processus est séquentielle
Donnez le résultat à l'exécution.
Normalement il nous donne l'arbre que j'ai présenté mais je n'ai pas compris comment affecter les PIDs.