<p>Tienes que poner un sleep, de este modo cae radicalmente el consumó de cpu</p>
<div class="gmail_quote">El 14/06/2013 16:46, "Diego" <<a href="mailto:diegogeid@gmail.com">diegogeid@gmail.com</a>> escribió:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hola. Gracias a todos por el tiempo.<br><div class="gmail_extra"><div><div><div><br></div>José
 Luis, gracias por tu respuesta, es verdad que no es en tiempo real pero
 10uS para un procesador y un kernel actual no son un problema (mientras
 no haya tareas hambriendas con mayor prioridad o menor nice). Los 
temporizadores existen y de muchísima presición y la resolución que brinda 
un microprocesador de este tipo esta sobrada.<br><br></div>Steven, 
gracias por tu respuesta, es verdad que GLUT no ofrece resolución 
temporal y encima de ello los tiempos son muy grandes en comparación con
 el que le pedimos (si quisiera lograrlo a 1mS no podría con GLUT, esto 
tiene una explicación pero al caso dejó de ser importante). Probé mi 
rutina mediante un bucle que corre en un nuevo thread y la función 
gettimeofday contínuamente comparando si excedió el tiempo (solo para 
ver cuanto varía según la capacidad de procesamiento) y si bien los 
tiempos son muy exactos (probé con un mínimo de 10uS), la tarea queda 
hambrienta y utiliza el 100% de un nucleo realizando verificaciones 
temporales como es lógico de presuponer, el uso del CPU no es aceptable,
 no utilizo C++ sino C, donde no existen tales bibliotecas.<br><br></div>El
 problema se reduce a dejar la tarea en espera hasta que transcurra un 
determinado período de tiempo sin dejar al CPU hambriento, alguien sabe 
como se logra? Supongo que, o bien existen funciones de C con este fin, o API's del sistema operativo que ayuden a poner la tarea de fondo por un tiempo, o interrupciones (y también seguramente bibliotecas creadas para ello)<br>


<br>Saludos y gracias!<br>Diego<br><br><div class="gmail_quote">El 13 de junio de 2013 19:14, Davidson, Steven <span dir="ltr"><<a href="mailto:srd4121@njit.edu" target="_blank">srd4121@njit.edu</a>></span> escribió:<br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hola Diego,<div class="gmail_extra"><br><div class="gmail_quote"><div>2013/6/13 Diego <span dir="ltr"><<a href="mailto:diegogeid@gmail.com" target="_blank">diegogeid@gmail.com</a>></span><br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Hola!<br><div class="gmail_quote"><div dir="ltr"><div><div><div><br></div>Estoy haciendo algunas pruebas  bajo Ubuntu y requiero que una función bastante simple se ejecute con cierta periodicidad (por ejemplo, 10 uS si se pudiera, sinó 100 uS o 1 mS) pero que sea preciso, es importante ya que corresponde a simulación de parámetros físicos y la función debe correr en tiempos discretos, marcados por un temporizador.<br>






<br></div><div>Estoy usando glut y la función glutTimerFunc no tiene la resolución que necesito ni se ejecuta con determinación (entiendo que no le da prioridad).<br></div><div><br></div></div></div></div></div></blockquote>



<div><br></div></div><div>GLUT no ofrece al resolución (precisión) temporal, ya que se basa en milisegundos. Te interesa usar funciones de mayor resolución. Posiblemente tengas que crear tu propio sistema de alarma o de cronometría. En Ubuntu, podrías intentar usar 'clock_gettime()' declarada en <span><time.h>. La otra opción es usar la biblioteca Boost, que es ahora estándar en C++; te interesa usar la clase 'time_duration', que puede guardar hasta la cantidad de nanosegundos.</span></div>



<div><br></div><div><br></div><div>Espero que esto te ayude.</div><span><font color="#888888"><div><br></div><div>Steven</div><div><br></div></font></span></div></div></div>
<br>_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br></blockquote></div><br></div></div>
<br>_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br></blockquote></div>