Existen muchas definiciones de tiempo real, muchas de ellas son contradictorias. Por desgracia este tema es controvertido, y no parece haber acuerdo 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 sean correctas no solo es necesario que la lógica e implementación de los programas computacionales sea correcto, sino también 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."
También han agregado que:
"Por lo tanto, es esencial que las restricciones de tiempo en los sistemas sean cumplidas. Para 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 claro y muy bueno ejemplo para decir que es programación en tiempo real, es el de un robot que necesita tomar una pieza de una banda. Si el robot llega tarde, la pieza ya no estará. Por lo tanto el trabajo se llevó a cabo incorrectamente, aunque el robot haya llegado al lugar adecuado, también el robot llega antes de que la pieza llegue, la pieza aún no estará ahí y el robot puede bloquear su paso.
Si el tener una falla en el tiempo 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 "blando".
Entonces, un "sistema de tiempo real DURO" es una forma de referirse a los sistemas y tareas cuyo fin o respuesta se produce antes de un tiempo estipulado; Y un "sistema de tiempo real BLANDO" es una forma de caracterizar una tarea o sistema de tiempo real en el que se busca que el tiempo medio de respuesta sea menor de un tiempo predefinido.
Si el funcionamiento incorrecto del sistema puede llevar a la pérdida de vidas o catástrofes similares entonces el sistema de tiempo real es nombrado como sistema de tiempo real de misión crítica.
*Determinismo
*Responsividad
*Confiabilidad
Hola Octavio!
ResponderEliminarNo olvides integrar los temas que se indicaron en la Actividad 1