PDA

View Full Version : forzare utilizzo della cpu solo nelle pause del sistema(windows)


nuovoUtente86
17-05-2008, 17:20
Che tecnica posso attuare, sotto windows, affinche un software(o meglio i suoi thread) non venga schedulato assieme agli altri ma che venga eseguito solo quando il sistema è in idle in modo da non interferire con il normale utilizzo della macchina, un po come avviene per i software di calcolo distribuito dedicati alla ricerca..Quale linguaggio sarebbe piu indicato per fare qualcosa del genere.

variabilepippo
17-05-2008, 17:33
Quale linguaggio sarebbe piu indicato per fare qualcosa del genere.


Qualsiasi linguaggio che ti consenta di accedere alla Windows API, per esempio potresti usa la funzione SetPriorityClass (http://msdn.microsoft.com/en-us/library/ms686219(VS.85).aspx):


IDLE_PRIORITY_CLASS
0x00000040
Process whose threads run only when the system is idle. The threads of the process are preempted by the threads of any process running in a higher priority class. An example is a screen saver. The idle-priority class is inherited by child processes.

Per operare sul singolo thread: SetThreadPriority.

nuovoUtente86
17-05-2008, 17:38
Si avevo pensato di utilizzare le priorità per fare il tutto..ma pensi possa bastare? Forse però probabilmente è l' unico modo....

71104
17-05-2008, 17:50
Si avevo pensato di utilizzare le priorità per fare il tutto..ma pensi possa bastare? Forse però probabilmente è l' unico modo.... se non fosse l'unico sarebbe comunque quello giusto: lo consiglio anch'io.

variabilepippo
17-05-2008, 17:51
La schedulazione dei thread (http://msdn.microsoft.com/en-us/library/ms685100(VS.85).aspx) è compito del sistema operativo, il programmatore può solo definire la priorità dei processi/thread.