Programación en Sistemas de Tiempo Real

Los sistemas en tiempo real son sistemas que realizan tareas en tiempo real. Estas tareas deben realizarse de inmediato con un cierto grado de urgencia. En particular, estas tareas están relacionadas con el control de ciertos eventos (o) reaccionar ante ellos. Las tareas en tiempo real se pueden clasificar como tareas duras en tiempo real y tareas blandas en tiempo real. 

Una tarea difícil en tiempo real debe realizarse en un momento específico que, de lo contrario, podría generar grandes pérdidas. En las tareas blandas en tiempo real, se puede pasar por alto una fecha límite especificada. Esto se debe a que la tarea se puede reprogramar (o) se puede completar después del tiempo especificado, 

En los sistemas en tiempo real, el programador se considera el componente más importante, que suele ser un programador de tareas a corto plazo. El enfoque principal de este programador es reducir el tiempo de respuesta asociado con cada uno de los procesos asociados en lugar de manejar la fecha límite. 

Si se usa un programador preventivo, la tarea en tiempo real debe esperar hasta que se complete el intervalo de tiempo de la tarea correspondiente. En el caso de un programador no preventivo, incluso si se asigna la prioridad más alta a la tarea, debe esperar hasta que finalice la tarea actual. Esta tarea puede ser lenta (o) de menor prioridad y puede llevar a una espera más larga. 

Se diseña un mejor enfoque combinando la programación preventiva y no preventiva. Esto se puede hacer mediante la introducción de interrupciones basadas en el tiempo en los sistemas basados ​​en la prioridad, lo que significa que el proceso que se está ejecutando actualmente se interrumpe en un intervalo basado en el tiempo y si un proceso de mayor prioridad está presente en una cola lista, se ejecuta adelantando el proceso actual. 

En función de la capacidad de programación, la implementación (estática o dinámica) y el resultado (propio o dependiente) del análisis, los algoritmos de programación se clasifican de la siguiente manera. 

  1. Enfoques basados ​​en tablas estáticas: 
    estos algoritmos generalmente realizan un análisis estático asociado con la programación y capturan las programaciones que son ventajosas. Esto ayuda a proporcionar un cronograma que puede señalar una tarea con la que se debe iniciar la ejecución en tiempo de ejecución. 
     
  2. Enfoques preventivos basados ​​en prioridades estáticas: 
    similar al primer enfoque, este tipo de algoritmos también utiliza el análisis estático de la programación. La diferencia es que en lugar de seleccionar una programación en particular, proporciona una forma útil de asignar prioridades entre varias tareas en la programación preventiva. 
     
  3. Enfoques basados ​​en la planificación dinámica: 
    aquí, los cronogramas factibles se identifican dinámicamente (en tiempo de ejecución). Lleva un cierto intervalo de tiempo fijo y un proceso se ejecuta si y solo si satisface la restricción de tiempo. 
     
  4. Enfoques dinámicos de mejor esfuerzo: 
    estos tipos de enfoques consideran plazos en lugar de cronogramas factibles. Por lo tanto, la tarea se aborta si se alcanza su fecha límite. Este enfoque se usa ampliamente en la mayoría de los sistemas en tiempo real. 
     

Publicación traducida automáticamente

Artículo escrito por ShivaTeja2 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *