lunes, 7 de abril de 2014

Qué significa sistema operativo a tiempo Real?

El tiempo real es un término difícil de definir y en el caso de los sistemas operativos no existe concenso respecto de una definición. Sin embargo, existe un criterio bastente generalizado que considera que un sistema operativo es de tiempo real si puede responder adecuadamente a los estímulos a que es sometido.

Aplicando este criterio a cualquier sistema operativo podríamos pensar que tiempo real significa responder a los estímulos lo más rápido posible. Sin embargo, esto no es del todo cierto ya que al poner esta definición en el contexto de algunas aplicaciones comunes podríamos encontrar matices.


Por ejemplo, un procesador que controla el sistema de frenos de un vehículo debe ser capaz de responder al estímulo del conductor o del sistema anticolisión en una ventana de tiempo muy bien definida. Si el sistema falla en su respuesta al estímulo inicial y en completar las acciones requeridas, no será de tiempo real. Además, fallar implica tener como resultado un escenario de catástrofe.

Como conclusión, este es un sistema de tiempo real estricto, ya que no se permite ni una respuesta tardía ni un completamiento de las acciones derivadas fuera de tiempo.

Por otro lado, tomemos como ejemplo, al procesador de un reproductor personal de MP3. Este también debe ser un sistema de tiempo real, ya que la lectura y decodificación de archivos MP3 debe ser realizada en plazos de tiempo que permitan que los datos sean convertidos de formato digital a analógico según un orden y frecuencias establecidos. Pero si por alguna razón el sistema falla en cumplir con estas exigencias; el peor escenario sería causarle molestias a la persona que escucha música. A este tipo de sistemas de tiempo real se les conoce como de tiempo real no estricto.

Ahora podríamos pensar que si un sistema es capaz de responder adecuadamente a los estímulos será de tiempo real. Esta conclusión tampoco es cierta, ya que un RTOS debe garantizar otros requisitos que lo hagan merecedor de esta calificación. Explicar cuáles son esos requisitos está fuera de los objetivos de este Blog, pero si usted está interesado en ellos, puede consultar la abundante literatura que existe al respecto y aclarar sus dudas.

Por último, podríamos pensar que si un sistema que utiliza un sistema operativo de tiempo real no puede responder adecuadamente a los estímulos, entonces el sistema operativo no puede ostentar su título. Esto es cierto para la aplicación pero no se aplica por consecuencia al RTOS. Puede que el RTOS esté bien calificado pero su sistema esté mal diseñado, o los desarrolladores hayan fallado en utilizarlo correctamente, quizá se ha seleccionado un procesador no adecuado o podría existir cualquier otra razón que impida que el sistema no cumpla la condición para el “tiempo real”, aún cuando se utilice un RTOS.


FreeRTOS como varios OS, está clasificado como RTOS y por su diseño puede asumir tareas de tiempo real estricto. Sin embargo, eso no quiere decir que sólo con utilizarlo ya tendremos un sistema de tiempo real, para ello es necesario dominar ciertas técnicas de diseño de hardware y firmware.

Como conclusión podríamos señalar que este es un campo difuso, donde no hay un concenso establecido en cuanto a definiciones, razones por las cuales existe un intenso debate en los aspectos filosóficos ligados a estos temas. El autor pretende dejar a un lado las discusiones de este tipo y concentrarse en mostrar una técnica para el desarrollo de aplicaciones con FreeRTOS lo más depurada y precisa que pueda, con el interés de que los estudiantes puedan alcanzar los conocimientos y habilidades que les permitan obtener aplicaciones de tiempo real.

Tomado de Curso de FreeRTOS por Ing. Reinier Torres Labrada.
(http://www.micropic.es/cursos/file.php/3/clases/C01_Introduccion.pdf)

No hay comentarios:

Publicar un comentario