martes, 3 de diciembre de 2013

Sistemas distribuidos de tiempo real

 Alan Burns y Andy Welling nos dan la siguiente definición para los sistemas de tiempo real o STR:
“Un sistema en Tiempo Real es cualquier sistema donde el tiempo en que se produce su salida es significante.
Esto es debido a que generalmente la entrada corresponde a algún instante del mundo físico y la salida tiene relación con ese mismo instante. El retraso transcurrido entre la entrada y la salida debe ser lo suficientemente pequeño para considerarse una respuesta puntual”

Los STR pueden estructurarse con frecuencia como sigue:
Los STR se clasifican por lo general en dos tipos dependiendo de lo serio de sus tiempos límite y de las consecuencias de omitir uno de ellos. Estos son:
  • STR Suave
  • STR Duro


El Sistema de Tiempo Real Suave significa que no existe problema si se rebasa un tiempo límite.
Por el contrario, un tiempo límite no cumplido en un Sistema de Tiempo Real Duro es inaceptable, pues podría conducir a la pérdida de una vida o a una catástrofe ambiental.

En la práctica, existen también sistemas intermedios en los que la omisión de un tiempo límite significa que falla toda la actividad actual, pero que la consecuencia no es fatal (por ejemplo, una línea de ensamblaje).

¿Cuáles son los aspectos más importantes a considerar en el diseño de un sistema distribuido de tiempo real y por qué?
Depende mucho el tipo de STR que se está desarrollando, ya sea STR suave o STR duro,  igualmente se tiene que considerar si son sistemas activados por eventos o sistemas activados por tiempo.
En el primero cuando ocurre un evento significativo en el mundo exterior, es detectado por algún sensor, lo que entonces provoca que el CPU conectado tenga una interrupción.
En estos sistemas se tiene que considerar el volumen de la carga ya que pueden fallar bajo condiciones de carga pesada.
En los STR activado por tiempo ocurre una interrupción de reloj cada ∆T milisegundos.
Para estos sistemas se tienen que tomar en cuenta ∆T.  Ya que si es muy pequeño, el sistema tendrá muchas interrupciones de reloj y desperdiciará mucho tiempo durante las revisiones, y Si es muy  grande, los eventos serios no serían notados hasta que fuese muy tarde.
A parte de lo anterior,  hay aspectos generales que se pueden considerar para el diseño de los STR
  • Predictibilidad. Lo ideal es que debe ser claro en el momento del diseño que el sistema cumple con todos sus tiempos límite, incluso con carga pico, el sistema tiene que se predecible.
  • Tolerancia a fallos. Es de particular importancia que el sistema pueda controlar el peor de los escenarios.
  • Comunicación en tiempo real. Lograr la predictibilidad en un SD significa que la comunicación entre los procesadores también debe ser predecible


Fuente.
Burns Alan, Wellings Andy, Sistemas de Tiempo Real y Lenguajes de Programación. 3ra. Edición 2003. Editorial Addison Wesley