domingo, 15 de febrero de 2009

>

Sistema Operativo en Tiempo Real (SOTR)

El SOTR no es mas que un tipo sistema operativo desarrollado para aplicaciones de tiempo real. Para entender mejor este concepto primero debemos saber a que se refiere con tiempo real, la definicion dada por 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 seria el de un robot que necesita tomar una pieza de una cinta transportadora. 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. Que tambien seria un trabajo incorrecto.

Con respecto al tiempo de ejecucion existe algo llamado "latencia". La latencia de interrupción es el tiempo que transcurre entre que el sistema operativo recibe una señal de interrupción hasta que pasa el control efectivamente al proceso que maneja la petición de interrupción.

Cabe mencionar que “tiempo real” no es sinónimo de rapidez. El enfoque principal en los sistemas de tiempo real con respecto a la latencia es el asegurarse de que la latencia del sistema es la suficiente para procesar la tarea a la cual le fue solicitada.

Las interrupciones son la forma más común de pasar información desde el mundo exterior al programa y son, por naturaleza, impredecibles. Entonces el sistema operativo debe ser capaz de predecir o saber que hacer antes de ejecutar la siguiente interrupcion.

En pocas palabras para que un sistema operativo cumpla con su cometido de ser en tiempo real es necesario que el sistema atienda la interrupción y procese la información obtenida antes de que se presente la siguiente interrupción.

Caracteristicas de un sistema operativo de tiempo real:

Determinismo
Es la capacidad de determinar con una alta probabilidad, cuanto es el tiempo que se toma una tarea en iniciarse, en pocas palabras predecirlo. Esto es importante por que los sistemas de tiempo real necesitan que ciertas tareas se ejecuten antes de que otras puedan iniciar.

Responsividad
La Responsividad se enfoca en el tiempo que se tarda una tarea en ejecutarse una vez que la interrupción ha sido atendida.

Usuarios controladores
En estos sistemas, el usuario o los procesos externos, tienen un control mucho más amplio del sistema. El proceso es capaz de especificar su prioridad y especifica que derechos tiene sobre el sistema.

Confiabilidad
El sistema debe de seguir en funcionamiento a pesar de catástrofes, o fallas mecánicas. Usualmente una degradación en el servicio en un sistema de tiempo real lleva consecuencias catastróficas, ejemplo como el control de trafico aereo, seria un desastre perder el control.

Que el sistema sea estable, que si para el sistema es imposible cumplir con todas las tareas sin exceder sus restricciones de tiempo, entonces el sistema cumplirá con las tareas más críticas y de más alta prioridad.

Se utilizan en entornos donde son procesados un gran numero de sucesos o eventos como por ejemplo para control de trafico aereo, bolsa de valores, monitoreo en los hospitales, diagnosticos medicos, simulacion en tiempo real, aplicaciones militares, etc.

Entre los sistemas operativos en tiempo real que existen podemos encontrar los siguientes:


A mi criterio, un sistema operativo en tiempo real se encarga de ejecutar tareas y procesarlas en determinado tiempo hasta que se termine el tiempo establecido para esa tarea. Si en caso dado falla el proceso, el sistema operativo debe saber que hacer en el mismo tiempo establecido para el proceso. Osea que se debe de respetar las restricciones del tiempo, sino, se dice que ha fallado.

Un ejemplo sencillo de una aplicacion de tiempo real seria el ADMINISTRADOR DE TAREAS que nos muestra lo que sucede (en tiempo real) en nuestra computadora.

Referencia:
http://www.geocities.com/txmetsb/sistemas-de-tiempo-real.htm
http://es.wikipedia.org/wiki/Sistema_operativo_de_tiempo_real

2 comentarios:

melvin dijo...

pues bien, hay muchas tecnologias de tiempo real, un ejemplo y espero no equivocarme son los dispositivos de control de pulsasiones, que lo que hacen es verificar nuestro pulso e indicar en ese mismo momento cuantas palpitaciones esta realizando nuestro corazon por minuto o alguna otra dimensional.

Si hablamos de sistemas operativos, creo que todo aquel sistema que puede mostrarnos en un momento determinado, datos que estan ocurriendo en ese momento, como un ejemplo vago que un sistema nos indique cuantas personas estan intentando entrar en un sistema determinado en el instante que lo estan intentando es parte de una aplicacion, que forma parte de un sistema de tiempo real.

Me gusto el post... Exitos.

elpeladero dijo...

Muy buen post, me pareció muy completo el contenido, y excelente el manejo de las referencias.