es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Estrategias para ejecutar código cada pocos cientos de microsegundos?

Supongamos que tenemos un ordenador bastante moderno, que se ejecuta en uno de los principales sistemas operativos; Si necesitamos ejecutar un código que accederá a una ubicación en la memoria principal para leer y otra ubicación en la memoria principal para escribir; Sin realizar ningún otro cálculo; El hilo que ejecuta este código deberá hacerlo periódicamente cada 900 microsegundos, con un rango de latencia aceptado de +/- 100 a 150 microsegundos; Entonces, ¿cuáles son las estrategias disponibles para lograrlo con un nivel muy alto de confiabilidad?

La pregunta formulada de otra manera sería, ¿cómo puedo evitar quedar atrapado por el comportamiento de programación del sistema operativo, sin limitar gravemente los procesadores disponibles para que se puedan ejecutar otras tareas?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Existen varias estrategias disponibles para lograr la ejecución periódica de un código que accede a la memoria principal con un alto nivel de confiabilidad y sin quedar atrapado por el comportamiento de programación del sistema operativo.

    Una forma de hacerlo sería utilizar un temporizador dedicado, como un temporizador basado en hardware, para disparar la ejecución periódica del código. Esto permitiría que el código se ejecute independientemente del comportamiento de programación del sistema operativo y proporcionaría un medio confiable para cumplir con los requisitos de tiempo.

    Otra forma de hacerlo sería utilizar un hilo con un nivel de prioridad alto y utilizar API específicas del sistema operativo para controlar y gestionar la programación del hilo. Esto permitiría que el código tuviera una prioridad más alta que otros hilos que se ejecutan en el sistema y permitiría que el hilo se ejecute con una latencia mínima. Sin embargo, esta forma de hacerlo podría afectar potencialmente el rendimiento de otras tareas que se ejecutan en el sistema.

    Una tercera forma de hacerlo sería utilizar una combinación de los métodos anteriores, como utilizar un temporizador dedicado y un hilo de alta prioridad. Esto proporcionaría un equilibrio entre confiabilidad y rendimiento, ya que el temporizador dedicado garantizaría la ejecución periódica mientras que el hilo de alta prioridad permitiría que el código se ejecutara con una latencia mínima sin limitar severamente los procesadores disponibles para que se ejecuten otras tareas.

    Independientemente del método elegido, es esencial probar y optimizar a fondo el código para el rendimiento y la confiabilidad para garantizar que cumpla consistentemente con los requisitos de tiempo.

Comments are closed.