[Tech] Nanosleep troppo pigrone

Francesco Chiarelli chiarelli_francesco@hotmail.com
Mer 22 Set 2004 10:20:30 CEST


Salve a tutti,

vorrei sottoporvi  ad un quesito:

in questo momento sto sviluppando un applicativo che gira sotto Linux (versione derivata dalla red hat 7.1).
Per la gestione di una porta di comunicazione devo attendere un lassodi tempo, e successivamente proseguire l'esecuzione del programma. Ho deciso di utilizzare la funzione nanosleep(le pause sono dell'ordine dei millisecondi).
Inizialmente qualunque valore passavo in ingresso alla funzione il tempo di attesa si approssimava con eccesso ai 10 msec. Ho scoperto che la precisione della funzione era determinata dalla risoluzione temporale del timer di sistema.
In realtà è possibile ottenere anche pause più precise del centesimo di secondo usando politiche di scheduling real time come SCHED_FIFO o SCHED_RR; in tal caso infatti il meccanismo di scheduling ordinario viene evitato( Tratto dal GaPiL).

Tale fatto è rispettato per pause sotto ai 2 msec, ma se devo aspettarne 5 ? Ho provato a far eseguire più micro pause sotto i 2 msec ma il tempo viene approssimata a 10 msec.

Qualcuno ha una idea a riguardo?

Grazie per l'attenzione 

Francesco C.


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.766 / Virus Database: 513 - Release Date: 17/09/2004
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.linux.it/pipermail/flug-tech/attachments/20040922/556bc6ab/attachment.htm>


Maggiori informazioni sulla lista flug-tech