Ú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