sábado, 22 de febrero de 2014

Tiempo Real no es sinónimo de “rapidez“


Últimamente, se esta escribiendo mucho sobre Tiempo Real, TR en Big Data, en Social Media,en IoE (Internet de todas las cosas), en IoT( de las cosas), en IIOT (Internet Industrial de las cosas) etc etc .Se hace referencia a una serie de  sistemas como de Tiempo Real cuando solo se quiere decir que el sistema es  o debe ser rápido (o con la menor latencia posible) ...

“Tiempo Real” no es sinónimo de rapidez

Un sistema de tiempo real es aquel en el que para que las operaciones estén correctas no depende tan solo que la lógica e implementación de los programas  fue correcta, sino también en el tiempo en el que dicha operación entregó su resultado. Si las restricciones de tiempo no son respetadas el sistema se dice que ha fallado.”  Donald Gillies.

En los Sistemas TR no es la latencia de la respuesta lo que nos determina o condiciona (esta latencia a veces esta en el orden de los segundos), el enfoque en tiempo real de la latencia es el asegurarse que la latencia del sistema es la suficiente, para resolver el problema al cual el sistema está dedicado (cumpliendo obviamente la funcionalidad requerida).


Un Sistema TR :Tiempo, principal restricción a tener en cuenta y Real, que trabaja sobre un Sistema Real (siempre que sea Predecible [Determinista para los puristas])

Un buen ejemplo es el de un robot que necesita tomar una pieza de una banda sinfín. Si el Robot llega tarde, la pieza ya no estará donde debía recogerla. Por lo tanto, el trabajo se llevó acabo incorrectamente, aunque el robot haya llegado al lugar adecuado. Si el robot llega antes que la pieza llegue, la pieza aun no estará ahí y el robot puede bloquear su paso. El robot puede necesitar un rango de mili segundos para realizar la operación o de segundos.

Los Sistemas de adquisición que alimentan a plataformas BigData no son predecibles. No son Sistemas TR . Son Sistemas que buscan  Mínima Latencia“ (máximo Throughput)


Algunas características de los sistemas informáticos que se suelen utilizar y que los hacen inadecuados para el tiempo real por hacerlos no predecibles son:
    • Memoria caché y pipe-line: Una misma instrucción de código máquina puede ejecutarse en más o menos tiempo según la historia del programa.
    • Interrupciones no controladas: El tratamiento de las interrupciones puede introducir una sobrecarga excesiva, que puedan impedir que un programa finalice en el tiempo adecuado.
    • Memoria virtual: La paginación de memoria en disco introduce retardos en los procesos que pueden retrasar en exceso su activación
    • Protocolos de comunicación no deterministas: Colisiones, reenvíos, etc. En el caso de un sistema distribuido los tiempos consumidos en el paso de información debe estar acotado.
Es por ello que los Sistemas TR necesiten de Sistemas Operativos, Protocolos de Comunicación y Lenguajes de Programación diferentes a los Sistemas Informáticos en otras disciplinas. 

Una clasificación de Sistemas en TR atendiendo a la criticidad en función del fallo en el tiempo de latencia de un proceso:
    • TR Duro (Hard Real Time Systems): El tener un fallo en el tiempo de latencia de un proceso del sistema lleva como consecuencia un error en el sistema
    • TR Suave: (Soft Real Time Systems): El tener un fallo en un proceso del sistema no conlleva un fallo en el sistema siempre y cuando este fallo esté dentro de ciertos límites establecidos
    • TR misión crítica El  funcionamiento incorrecto del sistema puede llevar a la pérdida de vidas o catástrofes similares 

No hay comentarios:

Publicar un comentario