View Single Post
Old 13-07-2004, 16:38   #9
Ed_Bunker
Senior Member
 
L'Avatar di Ed_Bunker
 
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9532
Quote:
Originariamente inviato da ilsensine
Esattamente, ma non necessariamente la loro somma è il tempo totale trascorso: questo perché il tempo totale viene ripartito tra i vari task.

Per me devi usare un array statico di strutture; ogni struttura deve avere il pid del processo (oppure 0 se è libera), e il tempo di inizio. Nel sighandler cerchi nell'array la struttura con il pid uguale a quello del processo che ha generato il segnale; quando ha finito, mette questo valore a 0 per liberarla per altri task. Mi sembra semplice, no?
Si ma questo implica comunque delle ricerche all'interno dell'array ogni volta che un processo figlio mi manda un SIGCHLD. Inoltre quando devo creare un nuovo processo (Quando faccio la fork() ) devo anche registrarlo all'interno dell'array andando a cercare la prima posizione libera. L'array, infatti, potrebbe avere dei "buchi" al proprio interno dovuti a processi che lanciati successivamente ad altri hanno terminato prima la loro esecuzione. Le prestazioni credo che ne risentano sensibilmente...

Tornando al discorso della sa_sigaction fare la somma tra lo user time consumed e il system time consumed non "restituisce" un risultato analogo a quello ottenuto facendo uso della gettimeofday() ?!?
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C.
Ed_Bunker è offline   Rispondi citando il messaggio o parte di esso