Está en la página 1de 6

Sistema operativo de tiempo real

Sistema operativo de tiempo real


Un sistema operativo de tiempo real (SOTR o RTOS -Real Time Operating System en ingls) es un sistema operativo que ha sido desarrollado para aplicaciones de tiempo real. Como tal, se le exige correccin en sus respuestas bajo ciertas restricciones de tiempo. Si no las respeta, se dir que el sistema ha fallado. Para garantizar el comportamiento correcto en el tiempo requerido se necesita que el sistema sea predecible (determinista).

Caractersticas Generales
Usado tpicamente para aplicaciones integradas, normalmente tiene las siguientes caractersticas: No utiliza mucha memoria Cualquier evento en el soporte fsico puede hacer que se ejecute una tarea Multi-arquitectura (cdigo portado a cualquier tipo de CPU) Muchos tienen tiempos de respuesta predecibles para eventos electrnicos

Se caracterizan por presentar requisitos especiales en cinco reas generales: Determinismo Sensibilidad Control del usuario Fiabilidad Tolerancia a los fallos En la actualidad hay un debate sobre qu es tiempo real. Muchos sistemas operativos de tiempo real tienen un programador (en ingls conocido como scheduler), diseos de controladores que minimizan los periodos en los que las interrupciones estn deshabilitadas, un tiempo finito conocido (casi siempre calculado para el peor de los casos, trmino que en ingls se conoce como worst case) de la duracin de interrupcin. Muchos incluyen tambin formas especiales de gestin de memoria que limitan la posibilidad de fragmentacin de la memoria y aseguran un lmite superior mnimo para los tiempos de asignacin y retiro de la memoria asignada. Un ejemplo temprano de sistema operativo en tiempo real a gran escala fue el denominado programa de control desarrollado por American Airlines e IBM para el sistema de reservas Sabre.

Procesador
Este tipo de sistemas operativos no es necesariamente eficiente en el sentido de tener una capacidad de procesamiento alta. El algoritmo de programacin especializado, y a veces una tasa de interrupcin del reloj alta pueden interferir en la capacidad de procesamiento. Aunque para propsito general un procesador moderno suele ser ms rpido, para programacin en tiempo real deben utilizarse procesadores lo ms predecibles posible, sin paginacin. Todos estos factores en un procesador aade una aleatoriedad que hace que sea difcil demostrar que el sistema es viable, es decir, que cumpla con los plazos de tiempo para la ejecucin de las tareas y la atencin de los servicios o interrupciones. Un sistema operativo de tiempo real puede ser implementado en microcontroladores o procesadores digitales de seal "DSP's", asi, se pueden desarrollar aplicaciones embebidas en diferentes reas de la electrnica.

Sistema operativo de tiempo real

Diseo
Hay dos diseos bsicos: Un sistema operativo guiado por eventos slo cambia de tarea cuando un evento necesita el servicio. Un diseo de comparticin de tiempo cambia de tareas por interrupciones del reloj y por eventos. El diseo de comparticin de tiempo gasta ms tiempo de la UCP en cambios de tarea innecesarios. Sin embargo, da una mejor ilusin de multitarea. Normalmente se utiliza un sistema de prioridades fijas. Uno de los algoritmos que suelen usarse para la asignacin de prioridades es el Rate-Monotonic Schedule. Si el conjunto de tareas que tenemos es viable con alguna asignacin de prioridades fijas, tambin es viable con el Rate-Monotonic Schedule, donde la tarea ms prioritaria es la de menor periodo. Esto no quiere decir que si no es viable con Rate-Monotonic Schedule no sea viable con asignaciones de prioridad variable. Puede darse el caso de encontrarnos con un sistema viable con prioridades variables y que no sea viable con prioridades fijas.

Programacin
En los diseos tpicos, una tarea tiene tres estados: ejecucin, preparada y bloqueada. La mayora de las tareas estn bloqueadas casi todo el tiempo. Solamente se ejecuta una tarea por UCP. La lista de tareas preparadas suele ser corta, de dos o tres tareas como mucho. El problema principal es disear el programador. Usualmente, la estructura de los datos de la lista de tareas preparadas en el programador est diseada para que cada bsqueda, insercin y eliminacin necesiten interrupciones de cierre solamente durante un perodo muy pequeo, cuando se buscan partes de la lista muy definidas. Esto significa que otras tareas pueden operar en la lista asincrnicamente, mientras que se busca. Una buena programacin tpica es una lista conectada bidireccional de tareas preparadas, ordenadas por orden de prioridad. Hay que tener en cuenta que no es rpido de buscar sino determinista. La mayora de las listas de tareas preparadas slo tienen dos o tres entradas, por lo que una bsqueda secuencial es usualmente la ms rpida, porque requiere muy poco tiempo de instalacin. El tiempo de respuesta crtico es el tiempo que necesita para poner en la cola una nueva tarea preparada y restaurar el estado de la tarea de ms alta prioridad. En un sistema operativo en tiempo real bien diseado, preparar una nueva tarea necesita de 3 a 20 instrucciones por cada entrada en la cola y la restauracin de la tarea preparada de mxima prioridad de 5 a 30 instrucciones. En un procesador 68000 20MHz, los tiempos de cambio de tarea son de 20 microsegundos con dos tareas preparadas. Cientos de UCP MIP ARM pueden cambiar en unos pocos microsegundos.

Comunicacin entre Tareas


Las diferentes tareas de un sistema no pueden utilizar los mismos datos o componentes fsicos al mismo tiempo. Hay dos mtodos para tratar este problema. Uno de los mtodos utiliza semforos. En general, el semforo binario puede estar cerrado o abierto. Cuando est cerrado hay una cola de tareas esperando la apertura del semforo. Los problemas con los diseos de semforos son bien conocidos: inversin de prioridades y puntos muertos (deadlocks). En la inversin de prioridades, una tarea de mucha prioridad espera porque otra tarea de baja prioridad tiene un semforo. Si una tarea de prioridad intermedia impide la ejecucin de la tarea de menor prioridad, la de ms alta prioridad nunca llega a ejecutarse. Una solucin tpica sera otorgar a la tarea que tiene el semforo la prioridad de la tarea ms prioritaria de las que estn esperando dicho semforo. Esto se denomina algoritmo de herencia bsica de prioridad.

Sistema operativo de tiempo real En un punto muerto, dos tareas (T1,T2) pretenden adquirir dos semforos (semA,semB) en orden inverso. En este caso si T1 adquiere semA y T2 adquiere semB cuando intenten adquirir el segundo semforo no podrn hacerlo ya que lo tiene la otra tarea. De esta forma entran en un punto muerto del que ninguna de las dos tareas puede salir sin intervencin externa. Esto se resuelve normalmente mediante un diseo por ej. obligando a adquirir los semforos en un orden concreto. La otra solucin es que las tareas se manden mensajes entre ellas. Esto tiene los mismos problemas: La inversin de prioridades tiene lugar cuando una tarea est tratando un mensaje de baja prioridad, e ignora un mensaje de ms alta prioridad en su correo. Los puntos muertos ocurren cuando dos tareas realizan envos bloqueantes (se quedan en la funcin de envo esperando a que el receptor reciba el mensaje). Si T1 manda un mensaje de forma bloqueante a T2 y T2 manda un mensaje de igual forma a T1 ninguna de las dos tareas saldr de la funcin de envo quedando ambas bloqueadas ya que no podrn llegar a la funcin de recepcin. Puede resolverse reordenando envos y recepciones o empleando envos no bloqueantes o temporizados. Aunque su comportamiento en tiempo real es algo ms difcil de analizar que los sistemas de semforos, los sistemas basados en mensajes normalmente son ms sencillos de desarrollar que los sistemas de semforo.

Interrupciones
Las interrupciones son la forma ms comn de pasar informacin desde el mundo exterior al programa y son, por naturaleza, impredecibles. En un sistema de tiempo real estas interrupciones pueden informar diferentes eventos como la presencia de nueva informacin en un puerto de comunicaciones, de una nueva muestra de audio en un equipo de sonido o de un nuevo cuadro de imagen en una videograbadora digital. Para que el programa cumpla con su cometido de ser tiempo real es necesario que el sistema atienda la interrupcin y procese la informacin obtenida antes de que se presente la siguiente interrupcin. Como el microprocesador normalmente solo puede atender una interrupcin a la vez, es necesario que los controladores de tiempo real se ejecuten en el menor tiempo posible. Esto se logra no procesando la seal dentro de la interrupcin, sino enviando un mensaje a una tarea o solucionando un semforo que est siendo esperado por una tarea. El programador se encarga de activar la tarea y esta se encarga de adquirir la informacin y completar el procesamiento de la misma. El tiempo que transcurre entre la generacin de la interrupcin y el momento en el cual esta es atendida se llama latencia de interrupcin. El inverso de esta latencia es una frecuencia llamada frecuencia de saturacin, si las seales que estn siendo procesadas tienen una frecuencia mayor a la de saturacin, el sistema ser fsicamente incapaz de procesarlas. En todo caso la mayor frecuencia que puede procesarse es mucho menor que la frecuencia de saturacin y depende de las operaciones que deban realizarse sobre la informacin recibida.

Memoria
Hay dos problemas con el reparto de la memoria en SOTR (sistemas operativos en tiempo real). El primero, la velocidad del reparto es importante. Un esquema de reparto de memoria estndar recorre una lista conectada de longitud indeterminada para encontrar un bloque de memoria libre; sin embargo, esto no es aceptable ya que el reparto de la memoria debe ocurrir en un tiempo fijo en el SOTR. En segundo lugar, la memoria puede fragmentarse cuando las regiones libres se pueden separar por regiones que estn en uso. Esto puede provocar que se pare un programa, sin posibilidad de obtener memoria, aunque en teora exista suficiente memoria. Una solucin es tener una lista vinculada LIFO de bloques de memoria de tamao fijo. Esto funciona asombrosamente bien en un sistema simple. La paginacin suele desactivarse en los sistemas en tiempo real, ya que es un factor bastante aleatorio e impredecible, que vara el tiempo de respuesta y no nos permite asegurar que se cumplirn los plazos, debido al trasiego de pginas de memoria con un dispositivo de almacenamiento (thrashing)

Sistema operativo de tiempo real

Comunicaciones
Para las comunicaciones se suelen usar conexiones o redes deterministas CAN bus o puertos serie, ya que las redes ms usuales, como Ethernet son indeterministas y no pueden garantizarnos el tiempo de respuesta. El sistema CAN bus es utilizado para la interconexin de dispositivos electrnicos de control (ECU) en los vehculos.

Algunos Ejemplos
QNX RT-11 MaRTE OS EasyTasks LynxOS RedHat Embedded Linux eCos (Linux) SOOS Ubuntu Studio versin 8.04, slo el ncleo (Linux) VxWorks Windows CE Linchos UNIX (Some) DuinOS RTAI Symbian BlackBerry 10

Enlaces externos
EasyTask OS [1] MaRTE OS [2] FreeRTOS [3] Desarrollo de drivers y aplicaciones en sistemas embebidos (FreeRtos) [4] Ing. Marcelo Lorenzati, Universidad Nacional de Mar del Plata Foro FreeRTOS en castellano [5] SOOS Project [6] Curso de FreeRTOS con microcontroladores PIC [7] DuinOS [8] Milos [9]

Sistema operativo de tiempo real

Referencias
[1] [2] [3] [4] [5] [6] [7] [8] [9] http:/ / www. easytasks. es/ http:/ / marte. unican. es/ http:/ / www. freertos. org/ http:/ / www. sistemasembebidos. com. ar/ oldfmt/ Contenido/ Lorenzati/ Tutorial_SASE_Marcelo_Lorenzati_final. ppt http:/ / sistemasembebidos. com. ar/ foro/ index. php?board=8. 0 http:/ / www. ingelec. uns. edu. ar/ rts/ soos/ http:/ / www. micropic. es/ cursos/ http:/ / www. robotgroup. com. ar/ noticias/ 20091204/ duinos-sistema-operativo-multitarea-para-arduino http:/ / www. milos. it

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


Sistema operativo de tiempo real Fuente: http://es.wikipedia.org/w/index.php?oldid=63482869 Contribuyentes: Al Lemos, Alhen, Almedinaro, Arbocenc, Camiloaa, Civit.anton, Claudio.aciti, Diegusjaimes, Dodo, Dreitmen, Dlawen, Estefani12.15, Funkadelic, Jkbw, LordT, MannyDev, ManuelGR, Manuelt15, Marco Regueira, Matdrodes, Mnts, Moriel, Mustela, Omerta-ve, Plwme, Retama, Rononito, Rortizb, Rsg, Shooke, Uncorreotemporal, Vitamine, Wilberaulpa, 127 ediciones annimas

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/

También podría gustarte