Processus et threads..[help me!!]
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
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
Configuration: Windows XP Firefox 2.0.0.9
5 réponses
-
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. -
je veux une simple idée pour m'initialiser..
-
-
@Utilisateur anonymebonjour,
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 ??
-
-
mon travail est dans un contexte de le programmation système..
-
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.-
-
@rogina1Je 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.
-
-
donnez moi un exemple concernant de creation d'un thread sous c++ builder