Articulo de referencia

Análisis de programación de sistemas en tiempo real

El término análisis de programación en computación en tiempo real incluye el análisis y la prueba del sistema de programación y los algoritmos utilizados en aplicaciones en tiem...

El término análisis de programación en computación en tiempo real incluye el análisis y la prueba del sistema de programación y los algoritmos utilizados en aplicaciones en tiempo real. En informática , el análisis de programación en tiempo real es la evaluación, prueba y verificación del sistema de programación y los algoritmos utilizados en operaciones en tiempo real. Para operaciones críticas, un sistema en tiempo real debe probarse y verificarse para comprobar su rendimiento.

Un sistema de programación en tiempo real se compone de un programador, un reloj y los elementos de hardware de procesamiento. En un sistema en tiempo real, un proceso o tarea tiene capacidad de programación; las tareas son aceptadas por un sistema en tiempo real y completadas según lo especificado por la fecha límite de la tarea dependiendo de la característica del algoritmo de programación. [1] El modelado y la evaluación de un sistema de programación en tiempo real se centran en el análisis de la capacidad del algoritmo para cumplir con una fecha límite del proceso. Una fecha límite se define como el tiempo requerido para que se procese una tarea.

Por ejemplo, en un algoritmo de programación en tiempo real, se podría fijar una fecha límite de cinco nanosegundos. En una operación crítica, la tarea debe procesarse en el tiempo especificado por la fecha límite (es decir, cinco nanosegundos). Una tarea en un sistema en tiempo real debe completarse “ni demasiado pronto ni demasiado tarde;..”. [2] Se dice que un sistema no es programable cuando las tareas no pueden cumplir con las fechas límite especificadas. [3] Una tarea puede clasificarse como un proceso periódico o aperiódico. [4]

Clasificaciones

Los criterios de un sistema de programación en tiempo real se pueden clasificar como duros , firmes o blandos . El planificador establece los algoritmos para ejecutar tareas según un orden específico. [4] Existen múltiples modelos matemáticos para representar un sistema de programación, la mayoría de las implementaciones de algoritmos de programación en tiempo real están modeladas para la implementación de configuraciones de uniprocesadores o multiprocesadores. El algoritmo de programación más desafiante se encuentra en multiprocesadores, no siempre es factible implementar un algoritmo de programación de uniprocesador en un multiprocesador. [4] Los algoritmos utilizados en el análisis de la programación “se pueden clasificar como preemptivos o no preemptivos” . [1]

Un algoritmo de programación define cómo se procesan las tareas en el sistema de programación. En términos generales, en el algoritmo de un sistema de programación en tiempo real, a cada tarea se le asigna una descripción, una fecha límite y un identificador (que indica la prioridad). El algoritmo de programación seleccionado determina cómo se asignan las prioridades a una tarea en particular. Un algoritmo de programación en tiempo real se puede clasificar como estático o dinámico. En el caso de un programador estático, las prioridades de las tareas se determinan antes de que se ejecute el sistema. En el caso de un programador dinámico, las prioridades de las tareas se determinan a medida que se ejecuta. [4] Los elementos de hardware de un sistema de programación en tiempo real aceptan las tareas desde el entorno informático y las procesan en tiempo real. Una señal de salida indica el estado del procesamiento. [5] Una fecha límite de una tarea indica el tiempo establecido para completar cada tarea.

No siempre es posible cumplir con el plazo requerido; por lo tanto, se debe realizar una verificación adicional del algoritmo de programación. Se pueden implementar dos modelos diferentes utilizando un algoritmo de programación dinámica; se puede asignar un plazo de tarea según la prioridad de la tarea (plazo más temprano) o se asigna un tiempo de finalización para cada tarea restando el tiempo de procesamiento del plazo (menor laxitud). [4] Los plazos y el tiempo de ejecución requerido de la tarea deben comprenderse de antemano para garantizar el uso efectivo de los tiempos de ejecución de los elementos de procesamiento.

Prueba y verificación

La verificación del rendimiento y la ejecución de un algoritmo de programación en tiempo real se realiza mediante el análisis de los tiempos de ejecución del algoritmo. La verificación del rendimiento de un programador en tiempo real requerirá probar el algoritmo de programación en diferentes escenarios de prueba, incluido el tiempo de ejecución del peor caso . Estos escenarios de prueba incluyen el peor caso y los casos desfavorables para evaluar el rendimiento del algoritmo. Los cálculos de tiempo necesarios para el análisis de los sistemas de programación requieren evaluar el algoritmo a nivel de código. [4]

Se pueden aplicar distintos métodos para probar un sistema de programación en un sistema en tiempo real. Algunos métodos incluyen: verificaciones de entrada/salida y análisis de código. Un método consiste en probar cada condición de entrada y realizar observaciones de las salidas. Según la cantidad de entradas, este enfoque puede requerir mucho esfuerzo. Otro método más rápido y económico es un enfoque basado en el riesgo, en el que se seleccionan entradas críticas representativas para probar. Este método es más económico, pero podría dar lugar a conclusiones poco óptimas sobre la validez del sistema si se utiliza el enfoque incorrecto. Los requisitos de volver a probar después de realizar cambios en el sistema de programación se consideran caso por caso.

Las pruebas y la verificación de sistemas en tiempo real no deben limitarse a verificaciones de entrada/salida y códigos, sino que también deben realizarse en aplicaciones en ejecución utilizando métodos intrusivos o no intrusivos.

Véase también

Referencias

  1. ^ ab Leung, Joseph; Zhao, Hairong (noviembre de 2005). Análisis de programación en tiempo real (PDF) (informe técnico). DOT/FAA/AR-05/27.
  2. ^ Liu, Zhiming; Joseph, Mathai (17 de febrero de 2001). "Verificación, refinamiento y programación de programas en tiempo real". Ciencias de la computación teórica . 253 (1): 119–152. CiteSeerX 10.1.1.50.2896 . doi :10.1016/s0304-3975(00)00091-8. 
  3. ^ Sorin, Manolache; Petru, Eles; Zebo, Peng (noviembre de 2004). "Análisis de la capacidad de programación de aplicaciones con tiempos de ejecución de tareas estocásticos" (PDF) . ACM Transactions on Embedded Computing Systems . 3 (4): 706–735. doi :10.1145/1027794.1027797. S2CID  17526360 . Consultado el 4 de diciembre de 2015 .
  4. ^ abcdef Audsley, N.; Burns, A. (1990). Programación de sistemas en tiempo real (PDF) (Informe técnico). Universidad de York, Reino Unido.
  5. ^ Castanet, R.; Laurençot, P. "Prueba de sistemas en tiempo real". 15.ª Conferencia Mundial sobre Ensayos No Destructivos . AIPnD . Consultado el 4 de diciembre de 2015 .
  • Comité Técnico IEEE sobre Sistemas en Tiempo Real
  • https://www.cs.rutgers.edu/~pxk/416/notes/08-rt_scheduling.html
  • RT.js: Programación práctica en tiempo real para aplicaciones web
Obtenido de "https://es.wikipedia.org/w/index.php?title=Sistemas_de_análisis_de_programación_en_tiempo_real&oldid=1237721590"