Processus et threads..[help me!!]

rogina1 Messages postés 80 Statut Membre -  
 ayad -
Bonjour,
je suis vraiment débutante en ce qui concerne la programmation sous c++ builder avec les commandes systèmes , moi je cherche une idée pour commencer à faire mon travail..
mon programme ne peut fonctionner que sur une machine multi_processeurs, il consiste à faire décomposer un processus en des sous processus (ont le meme segment code et le meme segment de données mais chacun à son propre mot d'état'PSW')==> threads,
ces threads seront exécutés au niveau des tous les CPUs et non pas un seule CPU, par exemple une machine à 4 CPUs donc dans mon programme je doit décomposer un processus QlQ en des 4 threads, et exécuter chaque thread dans un processeur(CPU),
je répète mon problème est que je ne connais pas exactement quelle commandes je doit utiliser..
aussi QlQ un doit m'expliquer comment ça se passe au niveau de le machine??
et merci beaucoup beaucoup beaucoup d'avance..
en attendant

5 réponses

Utilisateur anonyme
 
Quel est le problème que tu cherches à résoudre ?

Il existe plusieurs librairies de fonction qui peuvent automatiquement faire le genre de chose que tu cherches (OpenMP, MPI) mais je doute que ce soit simple à faire sans l'aide de ces librairies.
0
rogina1 Messages postés 80 Statut Membre 1
 
le problème est que je ne connais pas les librairies de fonction..
si tu a un fichier qui les contients et explique ses fonctions, tu me le donne ..




mais je doute que ce soit simple à faire sans l'aide de ces librairies.
0
rogina1 Messages postés 80 Statut Membre 1
 
je veux une simple idée pour m'initialiser..
0
Utilisateur anonyme
 
pourquoi utiliser le C++ Builder ? est-ce obligatoire ?
et surtout: quel est le problème que tu cherches à résoudre ?
0
rogina1 Messages postés 80 Statut Membre 1 > Utilisateur anonyme
 
bonjour,
oui c'est obligatoire..
je vais choisir un processus qlq et le décomposer en des sous processus
1 èrement quelle est le commande qui me permet de décomposer un processus ??
0
rogina1 Messages postés 80 Statut Membre 1
 
mon travail est dans un contexte de le programmation système..
0
Mahmah Messages postés 497 Statut Membre 125
 
Bonjour,

En C et sous linux on peut utiliser la fonction fork qui duplique un processus. Dans le processus père la valeur de retour est le PID du processus fils et dans le processus fils la valeur de retour est 0. C'est grace à cette valeur de retour que les deux peuvent se différencier et exécuter du code différent.

Il y a aussi le recouvrement de processus qui correspond à écraser le code d'un processus avec un nouvel exécutable.
Je ne sais pas du tout comment (sous linux) forcer un processus à être exécuté sur un processeur spécifique. (Je sais que sous Windows c'est possible en tout cas) Pour Windows il faut aller voir du côté de CreateProcess.

M.
0
rogina1 Messages postés 80 Statut Membre 1
 
salut
concernant fork(), oui je la connais mais je travail sous windows ,une question pour que je puisse décomposer un processus est ce que je doit créer des processus enfants donc:
processus enfants <==>threads ??
aussi :
Comment exactement ?
(Je sais que sous Windows c'est possible en tout cas) 
0
Mahmah Messages postés 497 Statut Membre 125 > rogina1 Messages postés 80 Statut Membre
 
Je n'ai aucun idée de comment découper un programme en plusieurs. A un niveau inférieur le processeur est capable de prendre une suite d'opérations en assembleur, de voir si elles sont indépendantes et les exécuter en parallèle le cas échéant. Pour un programme entier....

MSDN: Process and Thread functions
MSDN: GetProcessAffinityMask
MSDN: SetProcessAffinityMask
Dans les liens connexes en bas de page il y a aussi Multiple Processors et Processes qui sont à lire.

M.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ayad
 
donnez moi un exemple concernant de creation d'un thread sous c++ builder
0