martes, 8 de mayo de 2012

Sistemas Operativos en Tiempo Real [RTOS]

¿Qué es un RTOS?

Un sistema operativo de tiempo real es un ambiente de computación en el cual el hardware reacciona a las entradas en un tiempo especifico, se dice que es en tiempo real por que muchas veces estas reacciones son tan pequeñas que da la sensación de que funcionan instantaneamente.


Entender las diferencias entre sistemas operativos de tiempo real y los sistemas operativos a los cuales estamos acostumbrados a ver, es múy sencillo, por ejemplo, imaginemos que estamos jugando a un videojuego, cada que realizamos acciones, es como un programa que se ejecuta en ese entorno, entonces el juego cuenta con un sistema operativo de tiempo real para sentir como si nosotros manejaramos el cuerpo de un personaje, contando con un cierto tiepo de retraso entre la solictud de acción y la ejecución de esta, en contraste en un sistema operativo, se puede sentirun tiempo de retraso algunas veces, ya que en un sistema operativo de tiempo real se le da prioridad a la actualización antes que a nada.


Métodos

Un sistema operativo se considera en tiempo real si este siempre permite que sus programas realizar tareas dentro de cierto limite de tiempo que son especificados y que generalmente es lo esperado por el usuario, para cumplir con este propósito existen algunos métodos que se pueden utilizar.

En listo algunos métodos, en donde los RTOS deben:
  • Realizar pocas tareas, garantizando que las tareas se ejecutaran siempre antes del tiempo limite.
  • Disminuir o reducir ciertas funciones, cuando no se puede ejecutar dentro de estas limitaciones
  • Monitorizar constantemente la entrada de manera oportuna.
  • Controlar los recursos y poder interrumpir los procesos de fondo según sea necesario.
  • Anticipar posibles solicitudes y liberar lo suficiente del sistema para permitir una reacción oportuna.
  • Realizar seguimiento en la cantidad de cada recurso, por ejemplo, checar el tiempo del CPU, la memoria RAM, el ancho de banda.

Kernel de tiempo real.

Un kernel, como lo hemos visto en otras materias, es como el nucleo central de un sistema operativo y se encarga de todos los puestos de trabajo del sistema operativo.
  1. Arranque
  2. Programación de tareas
  3. libreria de funciones estándar.
Es importante recalcar que en un sistema integrado, la memoria rara vez es suficiente como para mantener una libreria de funciones, por lo que si van a ser incluidos, deben ser las más importantes y pequeñas.



En un sistema integrado, con frecuencia el núcleo arranca el sistema, inicia los puertos y los elementos de datos, luego se iniciará el planificador, para crear instancias de los temporizadores de harware, despues de este proceso, el núcleo, básicamente, se ponen como que fuera de la memoria, a exepción de las funciones de libreria, si es que tienen y el programador comenzará a ejecutarse en tareas secundarias, por lo que vemos que simplemente tendrá prioridad las de "tiempo real".


Algunos RTOS

Existen muchos más, aqui puedes encontrar una lista.


Referencias
Real-Time Operating System - Wikibooks
Common RTOS
Programming RTOS

1 comentario: