découpage d'un processus QlQ

découpage d'un processus QlQ - C++ - Programmation

Marsh Posté le 16-03-2008 à 10:37:45    

Bonjour, je travail sous c++ builder,je souhaite créer un programme qui marche sur une machine
multiprocesseurs et qui me permet de décomposer un processus de mon choix
en des threads et que l'exécution de ces threads sera partagée entre les processeurs,
Mais j'ai plusieurs questions vu que je suis dédutant en programmation Système;
et j'espère bien que vous aller m'aider ..
Voilà mes questions:
1* 1 èrement j'ai trouvé des commandes qui permettent de créer des nouveaux threads, mais mon
but est de décomposer le processus en des threads,exist-il une relation ?
càd: décomposition <==> création des nouveaux threads?
 
TMyThread *SecondProcess = new TMyThread(true); // créer mais non pas exécuter
 
SecondProcess->Priority = tpLower; // priorité inferieur à normal
SecondProcess->Resume(); // maintenant exécuter le thread.
 
aussi avec Quel commande?, c'est la question principale.
 
2* Bien sur pour commancer je dois savoir le nombre des processeurs,
j'essayé de lire la variable NUMBER_OF_PROCESSORS, mais ça marche pas
ShowMessage(StrUpper(getenv("NUMBER_OF_PROCESSORS" )).ToIntDef(0));
 
3*est-il toujours obligatoire de créer des classes pour chaque thread ?
 
4* voilà ce que je crois:
   *choisir le processus.
   *le tester s'il est décomposabe ou pas.
   *si oui je le décompose en threads (processus légers).
   *je dois le suspend.
   *exécuter dans chaque cpu un thread <prio> et avant sa fin je charge le thread qui suit.
   <je ne sais pas si je dois attribuer un quantum de temps pour chaque thread, je crois que
   xp est capable de gérer plusieurs processeurs, il peut exécuter chaque thread en affectant
   cycliquement du temps cpu à chacun de ces threads>.
   *Je ne sais pas comment utiliser le PSW.
   
en bref je suis dans une sombre ambiguité, j'espère bien que vous aller m'aider à savoir les
 commandes exactes pour chaque étapes ..j'ai vu des dizaines de commandes et je ne sais pas
 lesquelles à utiliser..
 merci d'avance.

Reply

Marsh Posté le 16-03-2008 à 10:37:45   

Reply

Marsh Posté le 17-03-2008 à 09:15:11    

ok, je crois que personne n'a compris ce que j'ai dit...
question:
comment je peut forcer un processus un etre exécuté par un cpu spécifique ?? dans une machine multi-processeurs?

Reply

Marsh Posté le 17-03-2008 à 09:21:04    

ben,j'ai trouvé cette commande :
BOOL WINAPI SetProcessAffinityMask(
  __in  HANDLE hProcess,
  __in  DWORD_PTR dwProcessAffinityMask
);
mais je ne sais pas quoi mettre comme parametre :fou:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed