4.3) Sistemas operativos en tiempo real
Existen muchas definiciones de “Tiempo Real”, muchas de ellas contradictorias. Desafortunadamente el tema es controversial, y no parece haber algún acuerdo al 100% sobre la terminología.
La definición canónica de un sistema de tiempo real (de Donald Gillies ) es la siguiente:
“Un sistema de tiempo real es aquel en el que para que las operaciones computacionales estén correctas no depende solo de que la lógica e implementación de los programas computacionales sea correcto, 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.”
Otros han agregado:
“Por lo tanto, es esencial que las restricciones de tiempo en los sistemas sean cumplidas. El garantizar el comportamiento en el tiempo requerido necesita que el sistema sea predecible. Es también deseable que el sistema obtenga un alto grado de utilización a la vez que cumple con los requerimientos de tiempo.”
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 de que la pieza llegue, la pieza aun no estará ahí y el robot puede bloquear su paso.
En algunas ocasiones podemos ver referencias sobre sistemas de tiempo real cuando solo se quiere decir que el sistema es rápido. Cabe mencionar que “tiempo real” no es sinónimo de rapidez; esto significa que no es la latencia de la respuesta lo que nos enfoca en un sistema de tiempo real (esta latencia a veces esta en el orden de los segundos), el enfoque en tiempo real de la latencia es el asegurarse de que la latencia del sistema es la suficiente para resolver el problema que al cual el sistema está dedicado.
Si el tener una falla en el tiempo de latencia de un proceso del sistema lleva como consecuencia un error en el sistema entonces esos procesos se consideran de tiempo real duro. Si el tener una falla en un proceso del sistema no conlleva una falla en el sistema siempre y cuando esta falla este dentro de ciertos límites establecidos ( es posible fallar en la latencia una de cada 1000 veces o una de cada 100, o fallar siempre y cuando el error no exceda el 3% de la latencia) entonces esos procesos se llaman procesos de tiempo real suave.
Si el funcionamiento incorrecto del sistema puede llevar a la perdida de vidas o catástrofes similares entonces el sistema de tiempo real es nombrado como sistema de tiempo real de misión crítica.