Está en la página 1de 6

SISTEMAS DE TIEMPO REAL Es un sistema de proceso de informacin que tiene que responder a un estmulo de entrada generado externamente en un perodo

finito y especificado. (Silverschatz, Galvin). Son sistemas informticos que tienen la capacidad de interactuar rpidamente con su entorno fsico, el cual puede realizar funciones de supervisin o control para su mismo beneficio. http://www.monografias.com/trabajos37/sistemas-tiempo-real/sistemas-tiemporeal.shtml Un sistema de tiempo real (STR) es aquel en el cual los resultados son correctos, no slo si la computacin es correcta, sino tambin el tiempo en el cual se producen los resultados (Donald Gillies) Dnde se utilizan los STR? Sistemas de mando y control Sistemas de control de procesos Sistemas de control de vuelo Sistemas de control de automviles Sistemas de defensa Sistemas de vigilancia intensiva Sistemas multimedia Electrnica de consumo Sistemas de telecomunicacin, etc. Ejemplo : Ejemplo: robot que debe tomar un objeto que viaja por una cinta transportadora 1.1 TAREAS Y PROCESADORES. TAREAS: En un sistema de tiempo real se ejecutan una o ms tareas Cada tarea ejecuta una actividad de forma repetida Cada vez que ejecuta la actividad se produce un ciclo de ejecucin Durante el ciclo de ejecucin la tarea permanece activa Cuando termina la actividad pasa a estar inactiva en espera de que comience el siguiente ciclo de ejecucin Tipos de tareas o De Tiempo Crtico Las tareas deben completarse antes de su plazo de respuesta Acrticas Las tareas deben completarse tan pronto como sea posible Tareas Peridicas Reiniciacin peridica de tareas, cada instancia debe completar antes de su plazo. Ejemplo: Seal de 60 Hz Tareas Aperidicas Se activan una sola vez, p.ej, dispara un misil y verifica el blanco. o 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.

o 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. o Los problemas con los diseos de semforos son bien conocidos: inversin de prioridades y puntos muertos (deadlocks). o 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. o 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. o 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. o 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. o PROCESADORES o 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. o 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 aaden una aleatoriedad que hace que sea difcil demostrar que el sistema es viable, es decir, que cumple con los plazos. o 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. 1.2 CARACTERISTICAS DE LAS TAREAS Tareas Peridicas Para incluir tareas espordicas hace falta modificar el modelo de tareas: El parmetro T representa la separacin mnima entre dos

sucesos de activacin consecutivos Suponemos que en el peor caso la activacin es pseudoperidica(con perodo T) El plazo de respuesta puede ser menor que el perodo (D T) El anlisis de tiempo de respuesta sigue siendo vlido Funciona bien con cualquier orden de prioridad Prioridades montonas en plazos Cuando los plazos son menores o iguales que los perodos, la asignacin de mayor prioridad a las tareas de menor plazo de respuesta (deadline monotonic scheduling) es ptima El tiempo de respuesta se calcula de la misma forma que con la asignacin montona en frecuencia se termina cuando win+1 = win, o cuando win+1 > Di Tareas Aperidicas Servidor espordico Un servidor espordico (SS, sporadic server) es un proceso peridico Parmetros: perodo Ts, tiempo de cmputo Cs, prioridad mxima Cs es la capacidad inicial del servidor Ts y Cs se eligen de forma que las tareas crticas estn garantizadas Cuando se activa una tarea aperidica, se ejecuta con prioridad mxima mientras quede capacidad disponible Cuando se agota la capacidad se ejecuta con prioridad baja La capacidad se rellena cuando ha pasado un tiempo Ts desde la activacin de la tarea aperidica Tareas Peridicas Periodo: El cmputo es ejecutado de forma regular cada intervalo de tiempo. Especficamente, cada periodo de la tarea Ti, denotado por Pi es una secuencia de activaciones, a1, a2..an, cada una de ellas en un intervalo de tiempo denotado por los intervalos [(k-1) Pi, k Pi]. Plazo de entrega: El plazo de entrega (Di) de una tarea Ti es el intante en el cual cualquier activacin de la tarea tiene que haber finalizado. Normalmente, el plazo de entrega de una tarea ser igual al periodo. Esto quiere decir que cada activacin de la tarea debe finalizar su ejecucin antes del siguiente periodo. En algunos casos, dependiendo de la restricciones de usuario, el plazo de entrega ser menor o mayor que el periodo. Fase Inicial: La fase inicial de una tarea Ti denota el defase que tiene el inicio de la primera activacin de la tarea respecto al tiempo de inicio y se denota como i. Tiempo de cmputo: El tiempo de cmputo de una tarea Ti es el tiempo de CPU necesario Ci para completar su ejecucin en cada una de las activaciones. Este tiempo depende de la complejidad del algoritmo de control y la velocidad del procesador. No depende en absoluto de la forma en que esta tarea es planificado. El tiempo de cmputo puede variar atendiendo a distintos aspectos: cdigo con ejecucin condicional que pueden consumir distinto tiempo, el subsistema de ejecucin (memoria cache y pipeline). Esto hace que la ejecucin de una activacin cualquiera de la tarea Ti pueda variar entre dos lmites [ei-, ei+], en el que ei- es el mnimo tiempo de cmputo y ei+ corresponde con el mximo tiempo de cmputo. Con el fin de considerar la peor situacin posible, en el anlisis del sistema se considerar siempre los tiempos mximos y se denotar como tiempo de peor caso (WCET, worst caseexecution

time) y se asumir que el tiempo de cmputo de la tarea Ties Cique corresponde al tiempo de peor caso. Tiempo de cmputo: Ci Retardo de inicio: Una actividad de una tarea Ti tiene un retardo de inicio que corresponde con el tiempo en el cual la actividad empieza a ser ejecutada. Este retraso viene influido por l granularidad del reloj para reconocer el inicio del periodo, la ejecucin del planificador, y la decisin del planificador sobre que tarea debe ejecutarse en cada instante. Adicionalmente, influye la disponibilidad de los datos ledos de los sensores externos cuando la tarea de control lee datos que pueden tener retrasos. Mientras que los factores que dependen de la ejecucin del ncleo del sistema operativo de tiempo real son predecibles y despreciables, los debidos a la ejecucin de otras tareas y la llegada de los datos externos pueden ser importantes y no predecibles. Este retardo se puede modelar mediante un intervalo [ri-, ri+] que delimita el retardo. Este trmino recibe en la literatura el nombre de jitter de entrada. Tiempo de cmputo: Ci Retardo de inicio: Ri Tiempo de finalizacin: El tiempo de finalizacin es el tiempo en el cual una actividad de una tarea Ti finaliza su ejecucin. Este tiempo depende de en qu momento empez la ejecucin de la tarea, el tiempo de cmputo necesario, los retrasos que la ejecucin de la actividad ha podido sufrir al acceder a datos compartidos y las posibles ejecuciones de otras tareas decididas por el planificador. El tiempo de finalizacin de una actividad se modela mediante un intervalo [fi-, fi+] que delimita el retardo de finalizacin. Tareas Aperidicas Son tareas acrticas sin separacin mnima. Se pueden ejecutar con prioridades ms bajas que las tareas crticas (peridicas y espordicas). o El tiempo de respuesta puede ser muy largo o En condiciones normales sobra tiempo de cmputo de las tareas crticas. Es mejor utilizar un servidor como un proceso peridico: o Asigna los recursos que no se utilizan a las tareas acrticas, asegurando en todo momento que las tareas crticas tienen asegurados sus recursos. Sistemas de Control en Tiempo Real Interaccin entre tareas En la mayora de los sistemas de inters prctico las tareas interaccionan mediante: o Datos comunes protegidos o Citas o mensajes. En todos estos casos puede ocurrir que una tarea tenga que esperar un suceso de otra menos prioritaria, es decir, suspenderse. Esta situacin se denomina bloqueo y produce una inversin de prioridad indeseable. o No es posible eliminarlo pero s limitar su duracin. o Tareas Peridicas o Factor de utilizacin o Es una medida de la carga del procesador. o El factor de utilizacin de una tarea Ti es:

El factor de utilizacin total del sistema es o Se trata de encontrar mtodos que proporcionen planificaciones admisibles con factores de utilizacin lo ms altos posible. o Con un solo procesador, el factor de utilizacin est limitado a o U1 o En general para M procesadores o U M o Planificacin basada en prioridades o Consideraremos prioridades estticas y planificacin expulsiva. o Frecuentemente se asignan prioridades a las tareas segn su "importancia". o De esta forma no se puede calcular si se pueden garantizar los plazos o no. Puede fallar incluso con factores de utilizacin muy bajos. o Ejemplo: T C P U o T1 10 50 0.20 o T2 2 10 0.20 o 0.40 o Si hacemos p1 > p2, T2 falla. o Prioridad al ms frecuente (RMS) o La asignacin de prioridades ms altas a las tareas ms frecuentes (perodo ms corto) es ptima (Liu & Layland, 1973). o Por ptima se entiende que no hay ninguna otra planificacin mejor. Si de esta forma no se obtiene un plan admisible, no se puede obtener con ningn otro mtodo basado en prioridades estticas. o Ejemplo: T C P U o T1 10 50 0.20 o T2 2 10 0.20 o 0.40 o Hacemos ahora p2 > p1 ( P2 < P1) --> las dos tareas terminan a tiempo. Tareas Aperidicas o Las tareas aperidicas se utilizan para simular sistemas heterogneos. Poseen dos o parmetros, que son su instante de arribo (Tj) y su tiempo de ejecucin (Aj). El instante de o arribo se cuenta desde el inicio de la ejecucin del sistema. El mximo tiempo entre arribos o (IAT) es configurable. La duracin de cada tarea (Aj) se genera aleatoriamente con una DU o o una DE de tasa . Puede configurarse la duracin mxima (Ajmax), y siempre ser un valor o mayor a 0 y menor o igual que Ajmax. o Aj = random(0, A jmax ) o Los tiempos de arribo se generan con una DE o una DU, a partir del arribo de la ltima
o

tarea generada, considerando el mximo tiempo entre arribos (IATmax) y el mayor tiempo de arribo configurado (T). Cuando se selecciona una DE esto representa una cola M/M/1 con distribucin de Poisson en el arribo de las tareas aperidicas donde es la tasa de arribos en el intervalo. o = 1-e .random(0, IAT max), = .IATmax Tj =Tj-1 + o La cantidad de tareas generada depende de los valores obtenidos para tiempos de arribo.
o