Anda di halaman 1dari 40

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)

LICENCIATURA EN SISTEMAS

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL

Lic. Carlos Imparato - Lic. Andrs Shokida

ADTR-ApunteProg-2011.doc

0 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)

SISTEMAS DE TIEMPO REAL (STR / RTS) Definicin


En base a la definicin de Donald B. Gillies, un sistema de tiempo real es aquel en el que para que las operaciones computacionales se consideren correctas no solo depende de que la lgica e implementacin de los programas computacionales sean correctos, sino tambin del tiempo en el que dicha operacin entreg su resultado. Si las restricciones de tiempo no son respetadas el sistema se dice que ha fallado. Por la definicin es preciso aclarar que un sistema on-line los sistemas interactivos no necesariamente son sistemas de tiempo real ya que en un sistema interactivo el usuario podra tolerar demoras de varios cientos de milisegundos sin que ello provoque un fallo en el sistema o un incumplimiento funcional. Por lo tanto en los sistemas de tiempo real es esencial que las restricciones de tiempo en los sistemas sean cumplidas. Para garantizar el comportamiento en el tiempo requerido se necesita que el sistema sea predecible. Cabe mencionar que tiempo real no es sinnimo de rapidez; esto significa que no es la latencia de la respuesta lo que nos enfoca en los sistemas de tiempo real (esta latencia a veces puede estar en el orden de los segundos), el enfoque en tiempo real de la latencia es asegurarse de que sea suficiente para resolver el problema para el cual el sistema est dedicado. Por lo tanto para cumplir con las restricciones temporales es necesario utilizar tcnicas formales para la validacin del diseo.

CLASIFICACION DE STR
En funcin a las restricciones de tiempos los sistemas de tiempo real se clasifican en : Sistemas Hard real-time estrictos: sistemas donde es imperativo que la respuesta ocurra dentro del plazo requerido. Ej. Sistema de Control de Vuelo. Sistemas Soft real-time no estrictos: os plazos son importantes pero el sistema sigue funcionando si no se cumplen los plazos ocasionalmente. Ej. Sistema de Adquisicin de Datos.

Las restricciones de tiempo estn relacionadas al rigor del cumplimiento de los tiempos mximos de respuesta y no a valores absolutos de tiempos, con lo cual un sistema hard real time podra tener un plazo mximo superior a un soft real time. Por ej. un sistema hard real time con un plazo mximo de 800 mseg (sin tolerancia) y un sistema soft real time con un plazo de 600 mseg con una tolerancia de ms de + 50%.

SISTEMAS DE CONTROL AUTOMATICO


El control automtico es el mantenimiento de un valor deseado dentro de una cantidad o condicin, midiendo el valor existente, comparndolo con el valor deseado, y utilizando la diferencia para proceder a reducirla. En consecuencia, el control automtico exige un lazo cerrado de accin y reaccin que funcione sin intervencin humana. El elemento mas importante de cualquier sistema de control automtico es el lazo de control realimentado bsico. El control automtico de procesos se usa fundamentalmente porque reduce el costo de los procesos industriales, siendo la eliminacin de errores otra contribucin positiva del uso del control automtico.

ADTR-ApunteProg-2011.doc

1 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


El principio del control automtico o sea el empleo de una realimentacin o medicin para accionar un mecanismo de control, se usa en diversos campos como el control de procesos qumicos y del petrleo, control automotriz, control de hornos en la fabricacin del acero, control de mquinas herramientas y en el control y trayectoria de un proyectil. El uso de las aplicaciones de software en tiempo real sobre arquitecturas de computadoras y los sistemas embebidos han posibilitado la aplicacin de ideas de control automtico a sistemas fsicos que hace apenas pocos aos eran imposibles de analizar o controlar. El concepto de la realimentacin no es nuevo, el primer lazo de realimentacin fue usado en 1774 por James Watt para el control de la velocidad de cualquier mquina de vapor. A pesar de conocerse el concepto del funcionamiento, los lazos se desarrollaron lentamente hasta que los primeros sistemas de transmisin neumtica comenzaron a volverse comunes en los aos de la dcada del 40, y en los aos pasados se han visto un extenso estudio y desarrollo en la teora y aplicacin de los lazos realimentados de control. En la actualidad los lazos de control son un elemento esencial para la manufactura econmica y prospera de virtualmente cualquier producto, desde el acero hasta los productos tecnolgicos y alimenticios.

CLASIFICACION DE SISTEMAS DE CONTROL AUTOMATICO


Los sistemas de control se clasifican en sistemas de lazo abierto y a lazo cerrado. La distincin la determina la accin de control, que es la que activa al sistema para producir la salida. Un sistema de control de lazo abierto es aquel en el cual la accin de control es independiente de la salida. Un sistema de control de lazo cerrado es aquel en el que la accin de control es en cierto modo dependiente de la salida. Los sistemas de control a lazo abierto tienen dos rasgos sobresalientes: a) La habilidad que stos tienen para ejecutar una accin con exactitud est determinada por su calibracin. Calibrar significa establecer o restablecer una relacin entre la entrada y la salida con el fin de obtener del sistema la exactitud deseada. b) Estos sistemas no tienen el problema de la inestabilidad que presentan los de lazo cerrado. Los sistemas de control de lazo cerrado se llaman comnmente sistemas de control por realimentacin. Ejemplo 1 Un lavarropas es un sistema de control de lazo abierto que est controlado por un programa de lavado fijo que debe ser anticipado por el usuario quien no forma parte del sistema. El control de la salida del sistema (la calidad del lavado) no es controlado ni verificado en forma automtica por el sistema ya que sera muy costoso. Ejemplo 2 Un mecanismo de piloto automtico y el avin que controla forman un sistema de control de lazo cerrado (por realimentacin). Su objetivo es mantener una direccin y estabilidad especfica del avin a pesar de los cambios atmosfricos. El sistema ejecutar su tarea midiendo continuamente la direccin instantnea del avin y ajustando automticamente las superficies de direccin del mismo (timn, aletas, etc.) de modo que la direccin instantnea coincida con la especificada. El piloto u operador quien fija con anterioridad el piloto automtico, no forma parte del sistema de control.

CONTROL POR REALIMENTACION


El lazo de control realimentado simple sirve para ilustrar los cuatro elementos principales de cualquier lazo de control (Fig.2).

ADTR-ApunteProg-2011.doc

2 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)

La medicin debe ser hecha para indicar el valor actual de la variable controlada por el lazo. Mediciones corrientes usadas en la industria incluyen caudal, presin, temperatura, mediciones analticas tales como pH, ORP, conductividad y muchas otras particulares especficas de cada industria. Los elementos principales del lazo de control se describen a continuacin.

Realimentacin
La realimentacin es la propiedad de una sistema de lazo cerrado que permite que la salida (o cualquier otra variable controlada del sistema) sea comparada con la entrada al sistema (o con una entrada a cualquier componente interno del mismo con un subsistema) de manera tal que se pueda establecer una accin de control apropiada como funcin de la diferencia entre la entrada y la salida. Ms generalmente se dice que existe realimentacin en un sistema cuando existe una secuencia cerrada de relaciones de causa y efecto ente las variables del sistema. El concepto de realimentacin est claramente ilustrado en el mecanismo del piloto automtico del ejemplo dado. La entrada es la direccin especificada, que se fija en el tablero de control del avin y la salida es la direccin instantnea determinada por los instrumentos de navegacin automtica. Un dispositivo de comparacin explora continuamente la entrada y la salida. Cuando los dos coinciden no se requiere accin de control. Cuando existe una diferencia entre ambas, el dispositivo de comparacin suministra una seal de accin de control al controlador, o sea al mecanismo de piloto automtico. El controlador suministra las seales apropiadas a las superficies de control del avin , con el fin de reducir la diferencia entre la entrada y la salida . La realimentacin se puede efectuar por medio de una conexin elctrica o mecnica que vaya desde los instrumentos de navegacin que miden la direccin hasta el dispositivo de comparacin.

Caractersticas de la realimentacin
Los rasgos funcionales ms importantes de la aplicacin de realimentacin en un sistema de lazo cerrado son: a) Aumento de la exactitud. Por ejemplo, la habilidad para reproducir la entrada fielmente b) Reduccin de la sensibilidad de la salida, correspondiente a una determinada entrada ante variaciones en las caractersticas del sistema. c) Efectos reducidos de la no linealidad y de la distorsin.

ADTR-ApunteProg-2011.doc

3 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


d) Aumento del intervalo de frecuencias (de la entrada) en el cual el sistema responde satisfactoriamente (aumento del ancho de banda). e) Tendencia a la oscilacin o a la inestabilidad.

El actuador final
Por cada proceso debe haber un actuador final , que regule el suministro de energa o material al proceso y cambie la seal de medicin . Mas a menudo ste es algn tipo de vlvula , pero puede ser adems una correa o regulador de velocidad de motor, posicionador , etc .

El proceso
Los tipos de procesos encontrados en las plantas industriales son tan variados como los materiales que las mismas producen. Estos se extienden desde lo simple y comn , tales como los lazos que controlan caudal , hasta los grandes y complejos como los que controlan columnas de destilacin en la industria petroqumica, plantas de reaccin nuclear, aviacin robots de montaje y soldadura de industria automotriz.

El controlador automtico
El ltimo elemento del lazo es el controlador automtico, su trabajo es controlar la medicin. Controlar significa mantener la medicin dentro de lmites aceptables. Los mecanismos dentro del controlador automtico no sern considerados. Por lo tanto, los principios a ser tratados pueden ser aplicados igualmente tanto para los controladores neumticos como para los electrnicos y a controladores de todos los fabricantes. Todos los controladores automticos usan las mismas respuestas generales, a pesar de que los mecanismos internos y las definiciones dadas para estas respuestas pueden ser ligeramente diferentes de un fabricante al otro. Un concepto bsico es que para que el control realimentado automtico exista, es que el lazo de realimentacin est cerrado. Esto significa que la informacin debe ser continuamente transmitida dentro del lazo. El controlador debe poder mover a la vlvula, la vlvula debe poder afectar a la medicin, y la seal de medicin debe ser reportada al controlador. Si la conexin se rompe en cualquier punto, se dice que el lazo est abierto. Tan pronto como el lazo se abre, como ejemplo, cuando el controlador automtico es colocado en modo manual, la unidad automtica del controlador queda imposibilitada de mover la vlvula. As las seales desde el controlador en respuesta a las condiciones cambiantes de la medicin no afectan a la vlvula y el control automtico no acta.

Tipos de respuestas del controlador


La primera y mas bsica caracterstica de la respuesta del controlador ha sido indicada como la accin directa o reversa. Una vez que esta distincin se ha llevado a cabo, existen varios tipos de respuestas que pueden ser usadas para controlar un proceso. Estas son: - Control Si/No ( On/Off con sus siglas en Ingls), o control de dos posiciones. - Control proporcional - Accin integral (reset) - Accin derivativa

ADTR-ApunteProg-2011.doc

4 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR) El control Si/No


El control SI/No es mostrado en la figura 5.

Para un controlador de accin reversa y una vlvula del tipo presin-para-cerrar. El controlador Si/No tiene dos salidas que son para mxima apertura y para apertura mnima, o sea cierre. Para este sistema se ha determinado que cuando la medicin cae debajo del valor de consigna, la vlvula debe estar cerrada para hacer que se abra; as, en el caso en que la seal hacia el controlador automtico est debajo del valor de consigna, la salida del controlador ser del 100%. A medida que la medicin cruza el valor de consigna la salida del controlador va hacia el 0%. Esto eventualmente hace que la medicin disminuya y a medida que la medicin cruza el valor de consigna nuevamente, la salida vaya a un mximo. Este ciclo continuar indefinidamente, debido a que el controlador no puede balancear el suministro contra la carga. La continua oscilacin puede, o puede no ser aceptable, dependiendo de la amplitud y longitud del ciclo. Un ciclo rpido causa frecuentes alteraciones en el sistema de suministro de la planta y un excesivo desgaste de la vlvula. El tiempo de cada ciclo depende del tiempo muerto en el proceso debido a que el tiempo muerto determina cuanto tiempo toma a la seal de medicin para revertir su direccin una vez que la misma cruza el valor de consigna y la salida del controlador cambia. La amplitud de la seal depende de la rapidez con que la seal de medicin cambia durante cada ciclo. En procesos de gran capacidad, tales como cubas de calentamiento, la gran capacidad produce una gran constante de tiempo por lo tanto la medicin puede cambiar slo muy lentamente. El resultado es que el ciclo ocurre dentro de una banda muy estrecha alrededor del valor de consigna, y este control puede ser muy aceptable, si el ciclo no es muy rpido. Por lejos el tipo ms comn de control usado en la industria es el Si/No. Sin embargo si la medicin del proceso es mas sensible a los cambios en el suministro, la amplitud y frecuencia del ciclo comienza a incrementarse, en algn punto el ciclo se volver inaceptable y alguna forma de control proporcional deber ser aplicada. De manera de estudiar los otros tres tipos de modos de control automtico se usaran respuesta de lazo abierto. Un lazo abierto significa que slo la respuesta del controlador ser considerada.

ADTR-ApunteProg-2011.doc

5 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)

La figura 6 muestra un controlador automtico con una seal artificial desde un regulador manual introducida como la medicin. El valor de consigna es introducido normalmente y a salida es registrada. Con ste arreglo, las respuestas especficas del controlador a cualquier cambio deseado en la medicin puede ser observada.

Accin proporcional
La respuesta proporcional es la base de los tres modos de control, si los otros dos, accin integral (reset) y accin derivativa estn presentes, stos son sumados a la respuesta proporcional. Proporcional significa que el cambio presente en la salida del controlador es algn mltiplo del porcentaje de cambio en la medicin. Este mltiplo es llamado ganancia del controlador. Para algunos controladores, la accin proporcional es ajustada por medio de tal ajuste de ganancia , mientras que para otros se usa una banda proporcional . Ambos tienen los mismos propsitos y efectos.

La figura 7 ilustra la respuesta de un controlador proporcional por medio de un indicador de entrada/salida pivotando en una de estas posiciones. Con el pvot en el centro entre la entrada y la salida dentro del grfico, un cambio del 100% en la medicin es requerido para obtener un 100% de cambio en la salida, o un desplazamiento completo de la vlvula. Un controlador ajustado para responder de sta manera se dice que tiene una banda proporcional del 100%. Cuando el pvot es hacia la mano derecha, la medicin de la entrada debera tener un cambio del 200% para poder obtener un cambio de salida completo desde el 0% al 100%, esto es una banda proporcional del 200%. Finalmente, si el pvot estuviera en la posicin de la mano izquierda y si la medicin se moviera slo cerca del 50% de la escala, la salida cambiara 100% en la escala. Esto es un valor de banda proporcional del 50%. Por lo tanto, cuanto mas chica sea la banda proporcional, menor ser la cantidad que la medicin debe cambiar para el mismo tamao de cambio en la medicin. O en otras palabras, menor banda proporcional implica mayor cambio de salida para el mismo tamao de medicin. Esta misma relacin est representada por la figura 8.

ADTR-ApunteProg-2011.doc

6 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)

Este grfico (figura 8) muestra cmo la salida del controlador responder a medida que la medicin se desva del valor de consigna. Cada lnea sobre el grfico representa un ajuste particular de la banda proporcional. Dos propiedades bsicas del control proporcional pueden ser observadas a partir de ste grfico: Por cada valor de la banda proporcional toda vez que la medicin se iguala al valor de consigna, la salida es del 50%. Cada valor de la banda proporcional defina una relacin nica entre la medicin y la salida. Por cada valor de medicin existe un valor especfico de salida. Por ejemplo, usando una lnea de banda proporcional del 100%, cuando la medicin est 25% por encima del valor de consigna, la salida del controlador deber ser del 25%. La salida del controlador puede ser del 25% slo si la medicin esta 25% por encima del valor de consigna. De la misma manera, cuando la salida del controlador es del 25%, la medicin ser del 25% por encima del valor de consigna. En otras palabras, existe un valor especfico de salida por cada valor de medicin.

Accin integral (reset )


Esta funcin es llamada accin integral o reset. La respuesta del lazo abierto del modo reset es mostrada en la figura 10, que indica un escaln de cambio en algn instante en el tiempo. En tanto que la medicin estuviera en su valor de consigna, no existira ningn cambio en la salida debido al modo de reset en el controlador.

Sin embargo, cuando cualquier error exista entre la medicin y el valor de consigna, la accin de reset hace que la salida comience a cambiar y contine cambiando en tanto el error exista. Esta funcin, entonces, acta sobre la salida para que cambie hasta un valor correcto necesario para mantener la medicin en el valor de consigna a varias cargas sea alcanzado. Esta respuesta es agregada a la banda proporcional del controlador segn se muestra en la figura 11. El escaln de cambio en la medicin primero produce una respuesta proporcional, y luego una respuesta de reset es agregada a la proporcional. Cuanta ms accin de reset o integral exista en el controlador, mas rpido cambia la salida en funcin del tiempo. Entre las varias marcas de controladores, la salida de accin integral es medida de una o dos maneras, tanto en minutos por repeticin, o en nmero de repeticiones por minuto. Para aquellos controladores que miden en minutos por repeticin, el tiempo de reset es la cantidad de tiempo necesaria para que dicho modo

ADTR-ApunteProg-2011.doc

7 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


repita la respuesta del lazo abierto causada por el modo proporcional para un paso de cambio de error. As, para estos controladores, cuanto menor sea el nmero de reset, mayor ser la accin del modo reset. En aquellos controladores que miden la accin de reset en repeticiones por minuto, el ajuste indica cuantas repeticiones de la accin proporcional son generados por el modo de reset en un minuto. As, para dichos controladores cuanto mayor sea el nmero reset, mayor ser la accin integral. El tiempo de reset es indicado en la figura 11.

La correcta cantidad de accin reset depende de cuan rpido la medicin puede responder al recorrido adicional de vlvula que la misma causa.

Accin derivativa
La tercera respuesta encontrada en controladores es la accin derivativa. As como la respuesta proporcional responde al tamao del error y el reset responde al tamao y duracin del error, el modo derivativo responde a la cuan rpido cambia el error. En la figura 12, dos respuestas derivativas son mostradas.

La primera es una respuesta a un corte en la medicin alejada del valor de consigna. Para un escaln, la medicin cambia en forma infinitamente rpida, y el modo derivativo del controlador produce un cambio muy grande y repentino en la salida, que muere inmediatamente debido a que la medicin ha dejado de cambiar luego del escaln. La segunda respuesta muestra la respuesta del modo derivativo a una medicin que est cambiando a un rgimen constante. La salida derivativa es proporcional al rgimen de cambio de ste error. Cuanto mayor sea el cambio, mayor ser la salida debido a la accin derivativa. La accin derivativa mantiene sta salida mientras la medicin est cambiando. Tan pronto como la medicin deja de cambiar, est o no en el valor de consigna, la respuesta debido a la accin derivativa cesar. Entre todas las marcas de controladores, la respuesta derivativa es comnmente medida en minutos como se indica en la figura 13.

ADTR-ApunteProg-2011.doc

8 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)

En resumen de lo visto para alcanzar el control automtico, el lazo de control deber estar cerrado. Para tener una lazo realimentado de control estable, el ajuste mas importante del controlador es la seleccin de la accin correcta, sea directa o inversa. La incorrecta seleccin de sta accin har que la salida del controlador sea inestable, y por lo tanto la eleccin correcta har que la salida del controlador cambie de tal manera que el movimiento de la vlvula se oponga a cualquier cambio en la medicin detectada por el controlador. El valor correcto de los ajustes de banda proporcional, reset, y tiempo derivativo dependen de las caractersticas del proceso, cabe consignar que en los controladores actuales dichos valores se pueden detectar en forma automtica , ya que el controlador dispone de un modo en que produce alteraciones controladas, y dentro de ciertos lmites establecidos previamente por el operario, en la salida se miden los resultados del proceso para una cierta cantidad de ciclos de alteracin, en base a ste comportamiento puede detectar cul es el mejor conjunto de ajustes para controlar un proceso mediante el software interno del aparato. La funcin del modo reset (tambin llamado accin integral) es para eliminar el offset. Si mucho valor de offset es usado es resultado ser una oscilacin de la medicin cuando el controlador acciona la vlvula de un extremo al otro. Si un valor muy bajo de reset es usado, el resultado ser que la medicin retorna al valor de consigna ms lentamente que lo posible. El modo derivativo se opone a cualquier cambio en la medicin. Una accin derivativa muy pequea no tiene efecto significativo, una accin con valores muy altos provoca una respuesta excesiva del controlador y un ciclo en la medicin.

SISTEMAS OPERATIVOS DE TIEMPOR REAL (SOTR / RTOS) Un punto importante a destacar es que los sistemas de tiempo real (RTS) y los sistemas operativos de tiempo real (RTOS) no son conceptos equivalentes: un RTOS brinda las facilidades de la plataforma como multitarea, concurrencia, paralelismo, schedulling, mecanismos de comunicacin entre procesos, etc., para implementar los sistemas de tiempo real, es decir el RTOS es la plataforma en la cual se monta el RTS. El estndar POSIX 1003.1 define tiempo real para sistemas operativos como la capacidad del sistema operativo para proveer un nivel requerido de servicio en un tiempo de respuesta limitado. POSIX son las siglas de Portable Operating System Interface; la X proviene de UNIX. Es una familia de estndares de llamadas al sistema operativo definidos por el IEEE (Institute of Electrical and Electronics Engineers) y especificados formalmente en el IEEE 1003. Su objetivo es generalizar las interfaces de los sistemas operativos para que una misma aplicacin pueda ejecutarse en distintas plataformas. Estos estndares surgieron de un proyecto de normalizacin de las API y describen un conjunto de interfaces de aplicacin adaptables a una gran variedad de implementaciones de sistemas operativos.

ADTR-ApunteProg-2011.doc

9 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


La serie de pruebas del estndar POSIX son llamadas "PCTS" en alusin al acrnimo "Posix Conformance Test Suite". Las partes que componen el estndar POSIX son :

POSIX.1, Core Services (implementa las llamadas del ANSI C estndar). Incluye: o Creacin y control de procesos. o Seales. o Excepciones de punto flotante. o Excepciones por violacin de segmento. o Excepciones por instruccin ilegal. o Errores del bus. o Temporizadores. o Operaciones de ficheros y directorios (sobre cualquier fs montado). o Tuberas (Pipes). o Biblioteca C (Standard C). o Instrucciones de entrada/salida y de control de dispositivo (ioctl). POSIX.1b, extensiones para tiempo real: o Planificacin (scheduling) con prioridad. o Seales de tiempo real. o Temporizadores. o Semforos. o Intercambio de mensajes (message passing). o Memoria compartida. o Entrada/salida sncrona y asncrona. o Bloqueos de memoria. POSIX.1c, extensiones para hilos (threads): o Creacin, control y limpieza de hilos. o Planificacin (scheduling). o Sincronizacin. o Manejo de seales.

CARACTERISTICAS DE LOS RTOS


Los sistemas operativos de tiempo real se caracterizan por satisfacer requisitos en los siguientes aspectos: Determinismo Sensibilidad Control del usuario Fiabilidad Tolerancia a los fallos

Un sistema operativo es determinista si realiza las operaciones en instantes fijos y predeterminados o en intervalos de tiempos predeterminados. Cuando compiten varios procesos por los recursos y por el tiempo del procesador, depende, en primer lugar, de la velocidad con la que pueda responder a las interrupciones y en segundo lugar, de si el sistema posee suficiente capacidad para gestionar todas las peticiones en el tiempo requerido. Un sistema operativo para operar de forma determinista debe contemplar el retardo mximo que se produce de la llegada de la interrupcin de un dispositivo de alta prioridad hasta que comienza el servicio.

ADTR-ApunteProg-2011.doc

10 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


La sensibilidad. El determinismo hace referencia a cuanto tiempo consume un sistema operativo en reconocer una interrupcin. La sensibilidad se refiere a cuanto tiempo consume un sistema operativo en dar servicio a la interrupcin despus de reconocerla. Las caractersticas de la sensibilidad son, entre otras: 1. La cantidad de tiempo necesario para iniciar la gestin de la interrupcin y comenzar la ejecucin de su rutina de tratamiento (ISR, interrupt service routine). 2. La cantidad de tiempo necesario para ejecutar la ISR. Generalmente, depende de la plataforma del hardware. 3. El efecto del tratamiento de interrupciones. El servicio se retrasara si una rutina de interrupcin puede ser interrumpida por la llegada de otra interrupcin. El determinismo y la sensibilidad forman conjuntamente el tiempo de respuesta a sucesos externos. Los requisitos en tiempo de respuesta son crticos ya que cada sistema debe cumplir los requisitos de tiempo impuesto por los individuos, dispositivos y flujos de datos externos al sistema. El control del usuario es generalmente mucho mayor en un sistema operativo en tiempo real que en un sistema operativo ordinario. En sistema operativo tpico que no sea en tiempo real, el usuario no tiene control sobre la funcin de planificacin del sistema operativo. En un sistema en tiempo real resulta esencial permitir al usuario un control preciso sobre la prioridad de las tareas. El usuario debe poder distinguir entre tareas rgidas y flexibles y especificar prioridades relativas dentro de cada clase. Un sistema en tiempo real tambin permitir al usuario especificar caractersticas. Que procesos deben estar siempre residente en la memoria principal. La fiabilidad es normalmente mucho mas importante en sistemas en tiempo real que en los que no lo son. Un fallo transitorio en un sistema que no sea en tiempo real puede resolverse simplemente volviendo a reiniciar el sistema. Un fallo de un procesador en un multiprocesador que no sea en tiempo real produce una reduccin del nivel de servicio hasta que se repara o sustituye el procesador averiado. Pero un sistema en tiempo real responde y controla sucesos en tiempo real. Las perdidas o degradaciones del rendimiento pueden tener consecuencias catastrficas, que pueden ir desde perdida financieras hasta daos en equipo e incluso perdida de vidas humanas. La tolerancia a los fallos es una caracterstica que hace referencia a la capacidad de un sistema de conservar la mxima capacidad y los mximos datos posibles en caso de fallos por Ej., un sistema UNIX cuando detecta datos corruptos en el ncleo, genera un mensaje de error en la consola del sistema, vuelca el contenido de la memoria en el disco para un anlisis posterior y finaliza la ejecucin del sistema. Un sistema en tiempo real intentara corregir el problema o minimizar sus efectos mientras contina la ejecucin. Un aspecto importante a la tolerancia a los fallos es la estabilidad. Un sistema en tiempo real si, en los casos en los que es imposible cumplir todos los plazos de ejecucin de las tareas, el sistema cumple los plazos de las tareas mas criticas y de mayor prioridad, incluso si no se cumple los de alguna tarea menos critica. Para cumplir los requisitos anteriores los sistemas operativos actuales en tiempo real incluyen normalmente las siguientes caractersticas: Cambios rpidos de procesos o hilos. Pequeo tamao (con una mnima funcionalidad asociada). Capacidad de responder rpidamente a interrupciones externas. Multitarea con herramientas de comunicacin entre procesos, como semforos, seales y sucesos.

ADTR-ApunteProg-2011.doc

11 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


Uso de archivos secunciales especiales que puedan acumular datos a alta velocidad. Planificacin preferente basadas en prioridades. Reduccin de intervalos en los que estn inhabilitadas las interrupciones. Primitivas para demorar tareas durante un tiempo fijo y para detenerlas y reanudarlas. Alarmas especiales y temporizadores. El corazn de un sistema operativo de tiempo real es el planificador de tareas a corto plazo y es lo que lo diferencia de los sistemas operativos genricos. El task manager (planificador de tareas) est compuesto por el Dispatcher y el Scheduler. El Dispatcher realiza el cambio de contexto administrando las tareas salientes y las entrantes para la CPU. El Scheduler tiene la funcin de seleccionar la prxima tarea que se asignar al procesador y el algoritmo utilizado para esta funcin es lo que distingue a los RTOS de los sistemas operativos de aplicaciones generales. Lo que resulta importante es que todas las tareas rgidas de tiempo real acaben (o comiencen) en su plazo y que tambin acaben (o comiencen) en su plazo tantas tareas flexibles de tiempo real como sea necesario. La mayora de los sistemas operativos actuales en tiempo real son incapaces de trabajar directamente con plazos. En su lugar, se han diseado para ser tan sensibles como sea posible a las tareas de tiempo real, de forma que, cuando se aproxima un plazo se pueda planificar rpidamente la traer. Las aplicaciones de tiempo real normalmente necesitan tiempos de respuesta deterministas en un rango de varios milisegundos. Las aplicaciones lmite como los simuladores de aviones militares por ej. presentan a menudo restricciones en un rango de diez a cien microsegundos.

METODOS DE DISEO
Para disear sistemas de tiempo real son necesarias tcnicas formales que permiten especificar y analizar sistemas concurrentes con restricciones temporales. Gomaa (1994) sugiere cuatro objetivos importantes para un mtodo de diseo de tiempo real. El mismo debe ser capaz de: Estructurar un sistema en tareas concurrentes Dar soporte al desarrollo del componentes reusables mediante la ocultacin de informacin Definir los aspectos de comportamiento mediante mquinas de estado finito Analizar las prestaciones de un diseo para determinar sus propiedades de tiempo real.

Para los sistemas de tiempo real estricto se presenta la desventaja importante de que los problemas de temporizacin en algunos casos slo son detectables durante la prueba o incluso peor, tras el deployment de la aplicacin. Del mismo modo que para el diseo de aplicaciones genricas, slo se obtienen productos fiables y correctos si las actividades de especificacin, diseo, implementacin y testing se llevan a cabo con una completa y alta calidad. La clave para alcanzar la calidad se apoya en una adecuada verificacin y validacin.

ADTR-ApunteProg-2011.doc

12 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR) MODELADO DE STR


El modelo de tiempo real de un sistema informtico es una abstraccin que proporciona la informacin cualitativa y cuantitativa necesaria para evaluar y predecir su comportamiento temporal. Es el medio del que se vale el diseador para formular los requisitos temporales durante la fase de especificacin, razonar sobre su arquitectura en las fases de diseo y certificar su planificabilidad en las fases de validacin. Los mtodos formales son particularmente efectivos en el desarrollo de los niveles de especificacin y de requerimientos aunque pueden utilizarse para el desarrollo formal completo de una implementacin. En ciencias de la computacin los mtodos formales se refieren a tcnicas basadas en las ciencias matemticas para la especificacin, desarrollo y verificacin del software y hardware de sistemas. El enfoque es especialmente importante in sistemas de alta integridad donde la seguridad es importante para asegurar que los errores no se introducen en el proceso de desarrollo. Un sistema se modela para poder manejar su complejidad y como herramienta para: Servir de ayuda para el desarrollo de la tarea (uno mismo) Visualizar lo hecho hasta el momento (uno mismo) Comunicar el avance obtenido (el cliente y el equipo de desarrollo) Documentar el desarrollo de la aplicacin (el equipo de desarrollo) El modelado permite la construccin y la validacin de sistemas : Es deseable un desarrollo lo ms rpido y menos costoso posible Un error es ms caro y complejo de encontrar y resolver despus de la liberacin del sistema al usuario Es muy importante evaluar la calidad de los sistemas conforme avanza su desarrollo. En cuanto del alcance del modelado es necesario considerar diferentes niveles: Nivel 0: especificacin informal Nivel 1: especificacin formal (uso de tcnicas con base matemtica, para la especificacin, diseo y construccin del sistema) Nivel 2: construccin manipulando la especificacin y verificacin con argumentos matemticos Nivel 3: prueba de propiedades

Los niveles 1 al 3 se relacionan con la nocin de mtodos formales.

ASPECTOS A MODELAR Por lo general existen 3 aspectos a modelar: estructura, comportamiento y atributos de calidad. Los aspectos de inters a modelar en un sistema de tiempo real son:

ADTR-ApunteProg-2011.doc

13 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


Distribucin de los componentes de hardware y protocolos de comunicacin entre ellos Restricciones temporales que afectan el desempeo del sistema (performance) Concurrencia y sincronizacin en el acceso a recursos compartidos Planning y scheduling de tareas propiedades generales (liveness y safety)

Existen diversos modelos y herramientas que pueden emplearse : Modelos tericos: Grafos Temporizados, FOCUS [Bro02], SDL (Specification and Description Language, Prototipos ad hoc Modelos grficos: UML Profile for Schedulability, Performance, and Time [UML], UML Profile for System on a Chip Herramientas de Verificacin: Kronos, UPPAAL [UPP] Simulacin: SystemC [Sys], VHDL (VHSIC Hardware Description Language)

Actualmente la industria utiliza plataformas distribuidas sobre las que se ejecutan concurrentemente mltiples aplicaciones, de las cuales algunas tienen requisitos de tiempo real y otras requieren determinados niveles de calidad de servicio. A fin de abordar la complejidad que resulta en estos sistemas, gestionar la diversidad de versiones que se han de manejar, y cumplir los plazos de desarrollo que impone la evolucin del mercado, actualmente se ha impuesto la componer su diseo en todos sus niveles en los sistemas operativos, en el software de intermediacin y en el diseo del cdigo de la propia aplicacin. La divisin en componentes en s es un aspecto complementario e independiente al proceso de diseo de tiempo real, sin embargo, al introducir cambios profundos en la metodologa de desarrollo de las aplicaciones, interfiere con los mtodos que han venido utilizndose en el diseo de tiempo real. En las metodologas tradicionales de diseo de sistemas de tiempo real, las aplicaciones son concebidas y descritas inicialmente como conjuntos de tareas o transacciones concurrentes dentro de un paradigma de sistema reactivo, y es en una fase posterior cuando, a fin de estructurar el cdigo, las operaciones utilizadas se organizan en mdulos siguiendo criterios de dominio, tareas o subsistemas. Por el contrario, cuando se utiliza una estrategia de diseo basada en componentes, el sistema se concibe y disea ensamblando mdulos reusables procedentes de catlogos de componentes disponibles, en funcin de que proporcionan la funcionalidad que se necesita, y es posteriormente cuando se asocian las secuencias de actividades resultantes a los procesos o hilos de flujo que introducen el modelo de concurrencia, siendo no unvoca la asociacin entre componentes y procesos. En el diseo de los sistemas basados en componentes hay que hacer compatibles los dos puntos de vista: el estructural (esttico) que identifica las operaciones como servicios de las instancias de los componentes y el reactivo (dinmico) donde las actividades (invocacin de las operaciones) se organizan por tareas o procesos. Una metodologa de modelado de aplicaciones basadas en componentes tiene que proporcionar recursos para formular el modelo de tiempo real de un componente como un ente independiente, y as mismo, debe ofrecer las propiedades de componibilidad necesarias para que el modelo de tiempo real de la aplicacin pueda construirse por composicin de los modelos de tiempo real de los componentes que la conforman. Para ello hay que considerar las siguientes caractersticas que son inherentes a estos sistemas:

ADTR-ApunteProg-2011.doc

14 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


- El comportamiento temporal de un servicio, no solo depende del cdigo del componente que lo ofrece, sino tambin del comportamiento temporal de los servicios de otros componentes de los que hace uso. - La respuesta temporal de un componente software depende de la plataforma (hardware, sistema operativo, recursos de comunicacin, etc.) que lo ejecuta, y por tanto, los modelos de tiempo real de los componentes han de incorporar referencias a los modelos de la plataforma. - La respuesta temporal de un componente est condicionada por la ejecucin de otros componentes que se ejecutan concurrentemente con l en la misma plataforma y con los que comparte recursos.

MODELADO DE COMPORTAMIENTO CON MAQUINAS DE ESTADO FINITO (Finite State Machine - FSM) INTRODUCCIN Las mquinas de estado finito son una herramienta muy til para especificar aspectos relacionados con tiempo real, dominios reactivos o autnomos, computacin reactiva, protocolos, circuitos, arquitecturas de software, etc. El modelo de FSM (Finite State Machines) es un modelo que posee sintaxis y semntica formales y que sirve para representar aspectos dinmicos que no se expresan en otros diagramas. Las mquinas de estados se pueden clasificar en aceptoras o transductoras:

Aceptoras (tambin llamadas reconocedoras): Son aquellas en donde la salida es binaria (si/no), depende nicamente del estado y existe un estado inicial. Puede decirse, entonces, que cuando la mquina produce una salida "positiva" (es decir, un "si"), es porque ha "reconocido" o "aceptado" la secuencia de entrada. En las mquinas de estados aceptoras, los estados con salida "positiva" se denominan estados finales. Transductoras: Son las ms generales, que convierten una secuencia de seales de entrada en una secuencia de salida, pudiendo sta ser binaria o ms compleja, depender de la entrada actual (no slo del estado) y pudiendo tambin prescindirse de un estado inicial.

La bibliografa a veces llama autmata finito a las aceptoras, mientras que en otros casos se emplea autmata como sinnimo de mquina de estados sin importar su tipo. Las aceptoras son los de mayor inters en la Teora de la Computacin, ms precisamente en la Teora de autmatas, siendo stas ramas de la matemtica. Las transductoras, en cambio, lo son en la electrnica digital y la computacin prctica. Es por eso que, por lo general, en los textos sobre matemtica y ciencias de la computacin se suele hablar de autmatas (y se refieren a las aceptoras) mientras que los de electrnica y computacin prctica hablan de mquinas de estados (y se refieren a los transductoras).

Ventajas de una FSM


Su simplicidad hace fcil para los desarrolladores sin experiencia realizar la implementacin con poco o nada de conocimiento extra (fcil entrada) Predictibilidad (en FSM deterministas), dado un grupo de entradas y un estado actual conocido, puede predecirse la transicin de estados, facilitando la tarea de verificacin Dada su simplicidad, los FSM son rpidos de disear, rpidos e implementar y rpidos de ejecutar

ADTR-ApunteProg-2011.doc

15 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)

FSM en una tcnica antigua de representacin de conocimiento y modelado de sistemas, y ha sido usados desde hace tiempo, como tal ha sido verificado como una tcnica de inteligencia artificial, con muchos ejemplos de los que aprender Las FSM son relativamente flexibles. Existen varias maneras de implementar un sistema basado en FSMs en trminos de su topologa, y es fcil incorporar muchas otras tcnicas. La transferencia desde una representacin abstracta del conocimiento a una implementacin es fcil Bajo uso del procesador; apropiado para dominios donde el tiempo de ejecucin est compartido entra varios mdulos o subsistemas. Solo el cdigo del estado actual ha de ser ejecutado, adems de un poco de lgica para determinar el estado actual. Es fcil determinar si se puede llegar o no a un estado, en las representaciones abstractas, resulta obvio si se puede o no llegar a un estado desde otro, y que requerimientos existen para hacerlo.

Como la mayora de tcnicas, las heursticas para saber dnde y como implantar mquinas de estados finitos son subjetivas y dependen de cada problema especfico. Esta claro que las FSMs estn bien adaptadas a dominios de problemas que se expresan fcilmente usando diagramas de flujo y poseen un grupo de estados y reglas que gobiernan las transiciones entre estados bien definidos.

Sintaxis Las mquinas de estado finito se definen como una tupla {S,, A S S, sk}, donde: S= {S1, S2,,Sm }: es un conjunto finito de nodos. : es un alfabeto finito de etiquetas. A: es un conjunto finito de aristas etiquetadas que unen nodos. sk S : es el estado inicial. Ej.

{ S={1,2,3}, ={a,b}, A={(1,a,2),(2,b,3),(3,a,1),(1,b,3)}, sk=1}


Vale la pena destacar que formalmente la mquina de estado es la tupla anterior y no el diagrama. Este es tan slo una representacin grfica de la mquina de estado para tener una ms sencilla y rpida visualizacin de su contenido.

ADTR-ApunteProg-2011.doc

16 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR) Semntica


Los nodos representan los posibles estados de aquello que se desea modelar. Las etiquetas representan eventos que provocan un cambio. Las aristas determinan de qu manera cada estado, dado un evento, deriva en otro estado.

Estado Un estado es una condicin del sistema que persiste durante un lapso significativo de tiempo. Para identificar los estados de un sistema es necesario analizar cules son las diferentes condiciones del sistema que persisten durante un lapso significativo de tiempo Una vez diferenciados esas condiciones funcionales del sistema se debe analizar el comportamiento que tiene el sistema para esas condiciones. Cada potencial estado debe tener un comportamiento bien definido que lo diferencie de los otros estados. Es decir si un potencial estado no refleja una condicin bien definida del sistema es muy probable que se trate de una accin.

Accin Las acciones se implementan dentro de los estados y le dan el comportamiento al sistema. Las acciones son las que disparan y lanzan eventos. los cuales pueden o no provocar transiciones de estado. Es importante comprender la diferencia entre un estado y una accin. Al disear una aplicacin las funcionalidades grandes se descomponen en un nmero de acciones o actividades menores. Esto se realiza de manera que cada una pueda ser definida en una funcin, haciendo la solucin general modular y ms fcil de mantener. Esta prctica debe considerarse al modelar con las FSMs ya que son una descomposicin del comportamiento de un objeto o sistema, e incluso un estado puede ser descompuesto en sub-estados. La diferencia con un estado est en que ste puede desarrollar una o ms acciones.

Evento Un evento es un mensaje hacia la mquina de estados producido por una entrada externa o generado internamente por una accin que potencialmente pueden provocar transiciones de estados. Si bien se deben declarar todas las acciones que le dan el comportamiento al sistema, los eventos a declarar son los relevantes al sistema es decir aquellos que provocan transiciones en la mquina de estados provocan que se mantenga en el mismo estado (loop explcito).

Transicin Una transicin es un cambio de un estado a otro disparada por un evento.

Matriz de Transiciones Proporciona una representacin matricial con tantas filas como estados (el nmero de filas es igual a |Q|) y tantas columnas como eventos (el nmero de columnas es igual |V|). La casilla de la fila correspondiente al estado Qi y la columna del evento Vj contiene el estado alcanzado Qi+1 al recibir el evento Vj.

ADTR-ApunteProg-2011.doc

17 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


De la mquina de estados del Ej. anterior la matriza de transiciones resultantes se muestra en la siguiente tabla.

Estado / Evento 1 2 3

a 2 1

b 3 3 -

Deadlock
Formalmente hablando, una FSM {S,, A S S, sk} tiene deadlock si existe algn nodo s S , tal que no existen un evento e y un nodo t S tal que ( s, e,t ) A. En otras palabras, si existe algn nodo que no posea salida para ningn evento. Ejemplo El estado 2 no posee salida alguna.

Semntica del deadlock La existencia de deadlock no necesariamente habla de un mal modelado. Ms adelante veremos que puede ser un efecto no deseado de la composicin de FSMs. Un ejemplo en donde el deadlock no necesariamente indica un error de modelado, podra ser la descompostura de una sistema por una falla de test inicial, el autobloqueo por seguridad operativa, un bloqueo de acceso, etc..

Ejemplo Una mquina expendedora de tickets de estacionamiento se ubica en las esquinas para que los usuarios puedan imprimir un ticket y estacionar en la calle. Funciona solo con monedas y se compone de : . Un panel con la ranura para ingresar las monedas . Un botn que permite imprimir el ticket. . Un display que le indica al usuario el monto ingresado . Un lector de monedas que reconoce y valida las monedas ingresadas . Un depsito de monedas . Una impresora de tickets

ADTR-ApunteProg-2011.doc

18 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


El ticket que emite la mquina (ver Fig. 1) es colocado en el interior del automvil a la vista para que cuando pasen los inspectores verifiquen que el usuario pago el estacionamiento y que el horario de finalizacin que figura impreso en el ticket no est vencido.

Ticket de Estacionamiento Emisin : 01/11/2009 10:30 Valor hora : $ 1 Importe ingresado : $ 2 Finalizacin : 01/11/2009 12:30
Fig. 1 Para obtener un ticket de estacionamiento el usuario realiza la siguiente operacin : . Se dirige a una mquina e ingresa una o varias monedas segn el tiempo que desea estacionar. Por ej por cada peso ingresado puede estacionar una hora. Si ingresa $ 1,25 puede estacionar una hora y cuarto, y as sucesivamente. . La mquina acepta todo tipo de monedas y NO entrega vuelto. . A medida que el usuario ingresa monedas, el lector interno procesa las monedas. Las reconocidas las almacena y en el display muestra el importe acumulado. La moneda que no es reconocida la devuelve y queda a la espera de monedas. . La mquina queda a la espera de monedas hasta que se presione el botn de ticket. . En el momento que el usuario presiona el botn de ticket la mquina calcula el tiempo de estacionamiento en funcin de las monedas ingresadas y luego imprime el ticket con la hora de finalizacin del estacionamiento. . Luego de imprimir el ticket la mquina queda lista a la espera de monedas para una nueva operacin. . La mquina no emite tickets por ms de 24 hs. Cuando el usuario ingresa una suma igual o superior a los $ 24 es decir el equivalente a 24 hs de estacionamiento, la mquina imprime automticamente el ticket por 24 hs y queda lista para una nueva operacin. La mquina arranca efectuando un auto-test y puede quedar fuera de servicio en el caso de que se quede sin papel para imprimir en el caso de que el test inicial indique una falla. Se pide modelar el sistema por medio de mquina de estados : a. Identificar el o los procesos crticos de tiempo real, justificando porqu se considera de tiempo real. b. La tabla con la identificacin de estados, acciones y eventos, asignando a cada estado las acciones y eventos correspondientes c. El diagrama de estados. d. La matriz de transicin

ADTR-ApunteProg-2011.doc

19 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


Solucin a. El proceso crtico de tiempo real es la deteccin y la validacin de las monedas. Se considera de tiempo real dado que el proceso crtico debe realizarse durante el lapso de tiempo en que la moneda est cayendo. Si la mquina no efecta el proceso dentro de las restricciones de tiempo, el sistema no funciona correctamente. b. Estado Q1. Test inicial Q2. Espera moneda Acciones A1. Autotest A2. Arrancar timer A3. Detectar moneda A4. Detectar botn de ticket A5. Resetear timer A6. Validar moneda A7. Devolver moneda A8. Depositar moneda A9. Sumarizar tarifa Eventos E1. Test Ok E2. Test no Ok E3. Deteccin de moneda E4. Botn presionado

Q3. Procesa moneda

E5. Moneda invlida E6. Tarifa mxima alcanzada ($ 24) E7. Tarifa mxima no alcanzada

Q4. Imprime ticket Q5. Fuera de servicio

A10. Calcular tiempo estacionamiento A11. Entrega ticket A12. Verificar papel A13. Inhibir funciones

E8. Ticket entregado E9. Sin stock

c.
Maquina expendedora de tickets de estacionamiento

E1 Q1 Test Inicial Q2 Espera moneda

E2

E4 Q5 Fuera servicio

E5,E7 E9 Q4 Imprime Ticket E6 E8

E3

Q3 Procesa moneda

ADTR-ApunteProg-2011.doc

20 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


d. Estado \ Evento Q1 Q2 Q3 Q4 Q5 E1 Q2 E2 Q5 Q3 Q4 Q2 Q4 Q2 Q2 Q5 E3 E4 E5 E6 E7 E8 E9

Composicin de Maquinas de Estado Finito


Supongamos que se quiere modelar el siguiente comportamiento de un horno microondas bsico: El horno microondas posee una puerta. Si la puerta est cerrada, entonces puede estar o no en funcionamiento (segn se prenda o apague). Estando prendido no es posible abrir la puerta del horno sin antes apagarlo. Tambin asumamos lo siguiente: en cualquier momento es posible establecer el modo de coccin.

No es necesario colocar la descripcin del estado sin embargo en algunas situaciones puede resultar til hacerlo: sobre todo aquellos estados que representan los principales de lo que se est modelando. Muchas veces es posible descomponer un problema complejo en problemas ms pequeos y ms fciles de tratar. Esto tambin es aplicable a las FSMs: una FSM puede descomponerse en varias FSMs ms simples. Sin embargo (como vern resolviendo los ejercicios de la prctica) no es trivial hacerlo, y hay que tener mucho cuidado de que la composicin de las mquinas sencillas represente exactamente a la FSM descompuesta y no a una parecida (o dicho de otro modo, que el conjunto de aristas descripto finalmente por la composicin de las mquinas sea idntico al representado por el de las mquinas a componer).

ADTR-ApunteProg-2011.doc

21 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


Sintaxis de la composicin ( || ) La composicin de FSMs se realiza a travs de la sincronizacin de etiquetas. Sean A = {SA,A, AA SA A SA, skA } y B = {SB,B, AB SB B SB, skB } dos FSM. La composicin paralela A || B se define como: {S ,A U B, A (SA X SB) X (A U B ) X (SA X SB), (skA, skB)} donde: S SA SB ((sa,sb) , e, (sc, sd )) A slo si se cumple alguna de estas condiciones: (sa ,e ,sc ) AA e B sb = sd (sb ,e ,sd ) AB e A sa = sc (sa ,e ,sc ) AA (sb ,e ,sd ) AB e A B

Ej. Dadas las mquinas A y B verificar si es posible la composicin A||B.

A
A1 a A2 c b b

B
a B1 B2 B3 d

{ SA ={A1,A2}, A={a,b}, AA={(A1,a,A2),(A2,b,A1),(A2,c,A1)}, skA=A1} { SB ={B1,B2,B3}, B={a,b,d}, AB={(B1,a,B2),(B2,d,B3),(B3,b,B1)}, skB=B1}

ADTR-ApunteProg-2011.doc

22 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)

.Composicin

A||B

a b a A1,B2 a A2,B3 c b b c

d A1,B3

A1,B1

A2,B2

{ S={(A1,B1), (A2,B2), (A1,B2), (A1,B3), (A2,B3)},

={a,b,c,d}, A={(A1B1,a,A2B2), (A2B2,c,A2B2), (A2B2,b,A1B2), (A2B2,d,A2B3), (A1B2,a,A2B2), (A1B2,d,A1B3), (A2B3,c,A2B3), (A2B3,b,A1B1), (A1B3,a,A2B3), (A1B3,b,A1B1)}, Sk=A1B1}
Verificacin de condiciones de las aristas : Nro. de elemento del conjunto A 1 2 3 4 5 6 7 8 9 10 Condicin que cumple 3 1 3 2 3 2 1 3 3 3

Dado que todos los elementos del conjunto de aristas cumplen al menos con una de las condiciones, la composicin A||B es vlida.

ADTR-ApunteProg-2011.doc

23 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


No Determinismo Si dado un estado y dado un evento, existe ms de una transicin vlida (cuya condicin, si existe, se satisface) hacia distintos estados se asumir un comportamiento no determinstico, es decir cualquiera de los estados posibles podr ser alcanzado, sin orden alguno.

a A a C B d

En estas mquinas dado el estado actual, la transicin de estado no es predecible. Puede darse el caso que mltiples entradas se reciban en tipos diferentes, esto significara que desde el estado actual no puede conocerse la transicin a otro estado hasta que las entradas se reciban (dirigido por eventos). La mquina determinista puede ser adecuada para muchos problemas pero no para los juegos. El comportamiento fcilmente predecible no es usualmente una caracterstica deseable ya que tiende a eliminar el "factor de diversin" del juego. La "secuencia", que es una de las claves de los beneficios de una FSM, no debe ser obvia en los juegos. Existen numerosas extensiones a las FSM y trucos para "mezclar" la secuencia para hacer ms difcil predecir sus actos. Una de estas opciones no deterministas implica la aplicacin de otra tcnica probada en la inteligencia artificial: Lgica Difusa, llamada Mquina de Estados Difusa (FuSM). Al igual que existe una gran flexibilidad en las mquinas de estados tambin existe al implementar una mquina de estados difusa. Se puede aplicar un valor difuso a varias transiciones de estados. Cuando se encuentra un grupo de conflicto la transicin con el valor difuso ms alto ser la transicin ms adecuada. Esto permite la especificacin de prioridades difusas a las transiciones de estados. Otra aproximacin para convertir una FSM determinista en una FSM no determinista sera simplemente usar un generador de nmeros aleatorios para seleccionar la regla a activar. Puede ser que no sea necesario implementar una mquina de estados finitos no determinista para percibir cierto nivel de impredictibilidad. Esto puede conseguirse mediante un objeto o sistema con un nmero muy elevado de estados definidos y una red compleja de transiciones, dando as la apariencia de ser impredecible.

SOFTWARE PARA SISTEMAS EN TIEMPO REAL, Virtualmente todos los STR son inherentemente concurrentes. La programacin concurrente es el conjunto de notaciones y tcnicas de programacin que expresan el paralelismo potencial y que resuelven los problemas de sincronizacin y comunicacin entre procesos. Su importancia est en proporcionar un entorno de abstracto donde estudiar el paralelismo sin tener que entrar en detalles de implementacin (Ben Ari, 1982) En base a los trabajos de Dijkstra (1968) un programa concurrente puede verse como mltiples tareas ejecutadas en paralelo (lgicamente) siendo las tareas un conjunto de procesos o hilos de ejecucin creados por un nico programa. La implementacin real de un conjunto de procesos tiene lugar normalmente de tres formas. Los procesos pueden:

ADTR-ApunteProg-2011.doc

24 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


- Multiplexar sus ejecuciones sobre un nico procesador - Multiplexar sus ejecuciones en un sistema multiprocesador con acceso a memoria compartida - Multiplexar sus ejecuciones en un sistema multiprocesador que no comparte memoria (conocidos como sistemas distribudos) Solo en los casos 2 y 3 es posible una verdadera ejecucin paralela de ms de un proceso. Los lenguajes de programacin concurrente permiten al programador expresar actividades lgicamente paralelas sin tener en cuenta su implementacin. Pascal, C, Fortran, Cobol son lenguajes de programacin secuenciales, es decir tienen un nico hilo de control. Comienzan la ejecucin en cierto estado y avanzan ejecutando una sentencia por vez hasta finalizar el programa. Esto no es lo adecuado para los STR. Considerando los procesos queda claro que la ejecucin de un programa concurrente comparte la ejecucin a diferencia de un programa secuencial. En la programacin concurrente los procesos deben ser creados y finalizados y a su vez distribudos a los procesadores disponibles. Considerando los requerimientos de tiempo real, las restricciones pueden aplicarse al hardware, al sistema operativo o al lenguaje de programacin o a una combinacin de ellos.

Requisitos del Hardware: -Interfaces Eficientes de E/S - Sistema de Interrupciones -Clculo con Nmeros Reales -Relojes de Tiempo Real -Proteccin de Memoria para Concurrencia Requisitos del Sistema Operativo: -Concurrencia -Mecanismos de Medicin del Tiempo -Planificacin de Tareas para Tiempo Real -Acceso a Interfaces -Gestin Eficiente de Interrupciones -Mecanismos para la Portabilidad Requisitos de los Lenguajes de Programacin: -Concurrencia -Manejo de Excepciones -Medida del Tiempo -Acceso a Interfaces -Gestin de Interrupciones -Portabilidad Los lenguajes de programacin pueden requerir soporte para Tiempo Real del Sistema Operativ. Algunos de esos lenguajes son: -Ensamblador -RTL/2 -Coral 66 -C -C++

ADTR-ApunteProg-2011.doc

25 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


Otros en cambio pueden incluirlo en su definicin: -Ada -MODULA-2 -Chill -Mesa -Java RT

METRICAS DE RENDIMIENTO.
Para medir el rendimiento de un sistema en tiempo real no es suficiente medir su velocidad de proceso en megainstrucciones por segundo (MIPS o MFLOPS), lo cual se suele realizar durante la ejecucin de una nica tarea, sin que son necesarias mtricas cuantitativas. 1. Mtrica Rhealstone (Rhealstone Metric). Esta mtrica se basa en seis medidas cuantitativas: Tiempo de Cambio de Tarea (Task Switching Time): tiempo medio desde que una tarea pierde la CPU hasta que otra de la misma prioridad toma la CPU (tTS). Est influenciado por la eficiencia de la CPU en guardar y recuperar su conjunto de registros y por la arquitectura de la CPU y su conjunto de instrucciones. Tiempo de Expulsin (Preemption Time): tiempo medio desde que una tarea pierde la CPU hasta que otra de mayor prioridad la consigue (tP). Est influenciado por la capacidad del sistema de reconocer la activacin de una tarea de mayor prioridad que la actual, y por el tiempo de cambio de tarea tTS. Por tanto, tP>tTS. Tiempo de Latencia de Interrupciones (Interrupt Latency Time): tiempo desde que la CPU recibe una seal de interrupcin hasta que comienza la ejecucin de la primera instruccin de la rutina de servicio de esa interrupcin (tIL). Est influenciado por la eficiencia del S.O. para el manejo de interrupciones y por la capacidad de la arquitectura de la CPU para manejar interrupciones externas. Tiempo de Intercambio de Semforo (Semaphore Suffling Time): tiempo desde que una tarea que posee un semforo libera el mismo y otra tarea que esperaba en el semforo lo toma (tSS). Representa la carga de tiempo asociada con la exclusin mutua. Tiempo de Salida de Bloqueo (Deadlock Breaking Time): tiempo medio que tarda el sistema en resolver una situacin de bloqueo (tDB). Flujo de Salida de Datagramas (Datagram Throughput): Kbytes por segundo que una tarea puede enviar a otra via llamadas al sistema operativo sin usar buffer de mensajes ni pase de punteros (tDT). La tarea emisora requiere la recepcin de una seal de reconocimiento. 2. Tiempo de Latencia de Ejecucin de Procesos (Process Dispatch Latency Time): Basado en el tiempo desde que la CPU recibe una interrupcin hasta que la tarea de tiempo real y alta prioridad que estaba esperando esa interrupcin comienza su ejecucin (tPDL). - Consiste en: -Tiempo de respuesta de interrupcin (desde que la CPU recibe la seal hasta que la rutina de servicio de la interrupcin comienza). -Tiempo de la rutina de interrupcin (ejecucin de la rutina de servicio de la interrupcin). -Tiempo desde que el software reconoce que debe ceder la CPU a la tarea de alta prioridad que esperaba la interrupcin, hasta que lo cede. -Tiempo de cambio de contexto, al de la tarea de alta prioridad.

ADTR-ApunteProg-2011.doc

26 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


3. Medidas Tridimensionales (Tri-Dimensional Measures): Integran medidas interdependientes y muestran grficamente esas dependencias: - Velocidad computacional de la CPU, en millones de instrucciones por seg. (MIPS1). - Capacidad de gestin de interrupciones, en millones de interrupciones por seg. (MIPS2). - Capacidad de E/S, en millones de operaciones de E/S por seg (Mb/seg) (MIPS3). - Normalmente, la variacin en una de las medidas supone una variacin en las otras, formando una superficie sobre el espacio (MIPS1, MIPS2, MIPS3). Para comparar, se extraen algunas medidas globales: MIPSequivalentes = MIPS1.(100.MIPS2).MIPS3 (se multiplica MIPS2*100 por ser inferior a los otros MIPS) - Otras medidas derivables de la representacin grfica: - Sobrecarga de Programas (Program Overhead) (P). Porcentaje de incremento de tiempo de ejecucin de un programa cuando existen interrupciones respecto a cuando no existen: P = , donde tn=tiempo de ejecucin bajo interrupciones, t0=tiempo sin interrupciones. tnt0 t0 .100 (%) - Sobrecarga del Sistema (System Overhead) (S). Porcentaje de tiempo de CPU dedicado por el sistema a la gestin de interrupciones: S = tnt0 tn .100 (%) Ej de aplicacin: El objetivo es mantener la temperatura y la presin de un proceso qumico dentro de unos lmites predefinidos

Termoacoplador

ADC

Switch

T P
ADC

Calentador

S
Pantalla

DAC Valvula de Bombeo

Para cumplir con los requerimientos se deben analizar las restricciones de tiempos de ejecucin de las tareas.

ADTR-ApunteProg-2011.doc

27 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)

Activacin Plazo de ejecucin

Tiempo mximo

Inicio Tiempo de ejecucin Delay

Fin

t
Tiempo de respuesta

SISTEMAS EMBEBIDOS. Son aquellos sistemas que llevan la programacin embebidos en microcontroladores microcontroladores. El programa se graba en la memoria flash del microcontrolador y es ejecutado por CPU con funciones especficas. Realizan funciones de control de sistemas fsicos Sus aplicaciones son de amplia gama. Muchos sistemas de uso comn en la industria, el transporte, las comunicaciones y el hogar tienen computadores embebidos empotrados como por ej : - Controladores de estabilidad de aviones - Trenes - Automviles - Telfonos celulares - Electrodomsticos: microondas, lavarropas - Sistemas complejos: plantas nucleares, industrias

CARACTERISTICAS DE SISTEMAS EMBEBIDOS. Los recursos estn limitados: Procesador, memoria, entradas/salidas Los dispositivos de entrada y salida son especiales para cada sistema Generalmente tienen teclados y pantallas especiales La CPU debe reaccionar a tiempo ante los: - Cambios en el sistema fsico - Una accin retrasada puede ser intil o peligrosa Ejemplo: sistema de frenado ABS, estabilidad de aviones, reaccin nuclear, etc.

ADTR-ApunteProg-2011.doc

28 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


Complejidad Algunos STR tienen miles de lneas de cdigo la variedad de funciones aumenta la complejidad incluso en sistemas relativamente pequeos. Simultaneidad de acciones (concurrencia): - Los dispositivos fsicos controlados funcionan al mismo tiempo. - Las tareas que los controlan actan concurrentemente Dispositivos de entrada y salida especiales Los manejadores de dispositivos forman parte del software de aplicacin Seguridad y fiabilidad. Sistemas crticos: fallos con consecuencias graves Prdida de vidas humanas Prdidas econmicas Daos medioambientales Determinismo temporal Acciones en intervalos de tiempo determinados Es fundamental que el comportamiento temporal de los STR sea determinista o, al menos, previsible No hay que confundirlo con la necesidad de que sea eficiente El sistema debe responder correctamente en todas las situaciones En los sistemas de tiempo real estricto hay que prever el comportamiento en el peor caso posible

ATRIBUTOS TEMPORALES DE SISTEMAS EMBEBIDOS. Se trata de garantizar que todas las veces que se ejecuta una tarea, la misma termina dentro del plazo mximo. En funcin a los tipos de activaciones y respuestas podemos identificar los siguientes atributos: Activacin. Peridica: a intervalos regulares, con perodo T Aperidica: cada vez que ocurre un suceso determinado Espordica: separacin mnima entre activaciones T Estocstica: irregular Plazo de respuesta Absoluto: tiempo lmite para terminar Relativo: intervalo desde la activacin

ADTR-ApunteProg-2011.doc

29 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


SISTEMAS EMBEBIDOS MICROCONTROLADOR. Un microcontrolador puede definirse como un sistema microprocesador completo que incluye la CPU, la memoria, un oscilador del reloj, las E/S y otros perifricos en un solo circuito integrado. Cuando algunos de estos elementos como las E/S o la memoria no estn incluidos, al circuito integrado se le llama microprocesador.

Unidad de control y proceso Unidad AritmeticoLgica Timers Conversor A/D Clock

B U S

Memoria RAM Memoria Flash Puertos de entrada Puertos de salida


Controlador de

I N T E R N O

interrupciones

Diagrama interno de un microcontrolador

Un microcontrolador es un circuito integrado que nos ofrece las posibilidades de un pequeo computador. Incluye en su interior las tres unidades bsicas de una computadora: CPU, Memoria y Unidades de E/S. Son diseados para disminuir el costo econmico y el consumo de energa de un sistema en particular. Por eso el tamao de la CPU, la cantidad de memoria y los perifricos incluidos dependern de la aplicacin. El control de un electrodomstico sencillo como una batidora, utilizar un procesador muy pequeo (4 u 8 bit) por que sustituir a un autmata finito. En cambio un reproductor de msica y/o vdeo digital (mp3 o mp4) requerir de un procesador de 32 bit o de 64 bit y de uno o ms Cdec de seal digital (audio y/o vdeo). El control de un sistema de frenos ABS (Antilock Brake System) se basa normalmente en un microcontrolador de 16 bit, al igual que el sistema de control electrnico del motor en un automvil.

ADTR-ApunteProg-2011.doc

30 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


Unidad Central de Proceso (CPU) La CPU (Central Processor Unit) es el cerebro de cada sistema microcontrolador. El trabajo de la CPU es ejecutar secuencialmente las instrucciones de un programa almacenado en una memoria no voltil (flash) que fue grabado por el programador. Algunas instrucciones del programa involucran decisiones simples que causan al programa continuar con la siguiente instruccin o saltar a un nuevo lugar del programa. En un captulo posterior, se vern de cerca el juego de instrucciones disponibles para un microcontrolador en particular. Puertos de Entradas Los dispositivos de entrada proporcionan informacin del mundo exterior al sistema con microcontrolador. En un ordenador personal, el dispositivo de entrada ms comn es el teclado, igual que una mquina de escribir. Los sistemas con microcontroladores normalmente usan dispositivos de entrada mucho ms simples como interruptores o pequeos teclados. Un ejemplo de un dispositivo de entrada extico para un microcontrolador es el sensor de oxgeno en un automvil que mide la eficacia de la combustin tomando muestras en el tubo de escape. La mayora de entradas del microcontrolador pueden procesar slo seales de entrada digital, al mismo nivel de voltaje que el de la fuente de alimentacin. El nivel 0 V o tierra se le llama VSS y el nivel positivo de la fuente de alimentacin se le llama VDD y es tpicamente de 5 Volts. Un nivel aproximado de 0 voltios indica una seal lgica 0 y un voltaje aproximadamente igual al nivel positivo de la fuente de alimentacin indica una seal lgica 1. Por supuesto, el mundo real est lleno de seales analgicas o seales que son de otros niveles de voltaje. Algunos dispositivos de entrada traducen los voltajes de seal de algn otro nivel a los niveles VDD y VSS, necesarios para el microcontrolador. Otros dispositivos de entrada convierten las seales analgicas en seales digitales (a valores binarios 1 y 0) para que el microcontrolador los pueda entender y manipular. Algunos microcontroladores incluyen circuitos convertidores analgicos/digitales en el mismo circuito integrado. Los transductores se pueden usar para traducir otras seales del mundo real a niveles de seal lgica que un microcontrolador puede entender y manipular. Algunos ejemplos que incluyen transductores, como los sensores de temperatura, sensores de presin, detectores de nivel de luz y otros. Con estos transductores, casi cualquier propiedad fsica se puede usar como entrada a un sistema con microcontrolador.

Puertos de Salidas Se usan dispositivos de salida para comunicar la informacin o acciones del sistema con microcontrolador al mundo exterior. En un ordenador personal, el dispositivo de salida ms comn es la pantalla. Los sistemas con microcontrolador usan a menudo dispositivos de salida mucho ms simples como displays de LCD, LEDs, o zumbadores. Los circuitos convertidores (a veces construidos en el mismo circuito integrado microcontrolador) pueden convertir seales digitales a niveles de voltaje analgicos. La mayora de las salidas son seales de nivel lgico digital, que se usan para manejar displays LCD de caracteres, LEDs o dispositivos elctricos como rels o motores.

ADTR-ApunteProg-2011.doc

31 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


Reloj (Clock) Salvo excepciones, los microprocesadores usan un pequeo oscilador del reloj (clock) para activar la CPU, para mover de un paso a la secuencia siguiente. En el captulo de arquitectura de un microprocesador, se puede ver que incluso las instrucciones simples de un microcontrolador estn compuestas de una serie de pasos an ms bsicos. Cada uno de estos pasos diminutos en el funcionamiento del microprocesador toma un ciclo del reloj de la CPU. Memoria Se usan varios tipos de memoria para los diferentes propsitos en un sistema con microprocesador. Los tipos principales de memoria encontrados en un microcontrolador son: Memorias para almacenar el Programa: __ ROM (Read Only Memory): memoria slo de lectura, este tipo de memoria se programa en fabrica y se llama Mscara. __ EPROM (Erasable Programmable Read Only Memory): memoria slo de lectura, programable elctricamente y se borra por luz ultravioleta a travs de una ventana en la parte superior del dispositivo. __ OTP (One Time Programmable): memoria slo de lectura, programable elctricamente una sola vez. __ FLASH: memoria programable y borrable elctricamente, por bloques. Estos tipos se usan principalmente para almacenar los programas y los datos permanentes que deben permanecer inalterados incluso cuando no hay ninguna alimentacin aplicada al microcontrolador. Memoria para almacenar Datos: __ RAM (Random Access read/write Memory): memoria de acceso a lectura o escritura aleatorio, se usa para el almacenamiento temporal de datos y el clculo intermedio de los resultados durante las operaciones. Este tipo de memoria pierde los datos cuando se queda sin alimentacin. __ EEPROM (Electrically Erasable Programmable Read Only Memory): memoria slo de lectura, programable y borrable elctricamente. La unidad ms pequea de una memoria, es de un solo bit, que puede guardar uno valor lgico 0 o 1. Estos bits se agrupan en conjuntos de ocho bits para hacer uno byte. Los microprocesadores ms grandes utilizan grupos de 16 o 32 bits, llamados palabras o word. El tamao de una palabra (word) puede ser diferente para cada microprocesador, pero un byte siempre es de ocho bits. Los ordenadores personales trabajan con programas muy grandes y con grandes cantidades de datos, para ello usan formas especiales de dispositivos de almacenamiento, llamados almacenamiento en masa, como los discos blandos, los discos duros, y los discos compactos. No es raro encontrar varios millones de bytes de memoria RAM en un ordenador personal, con discos duros con varios gigabytes o discos compactos muy similares a los usados para las grabaciones de msica con una capacidad de 640 millones de bytes de memoria de slo lectura. En comparacin, los sistemas con microcontrolador tpico tienen una memoria total entre 1.000 y 64.000 bytes.

DISEO DE APLICACIONES EMBEBIDAS DE TIEMPO REAL Para la etapa de diseo de aplicaciones embebidas se aplican buenas prcticas que permiten obtener aplicaciones eficientes, escalables y mantenibles. Estructuralmente se diferencian dos tipos de ejecucin de procesos: Background Las tareas de background son aquellas que se realizan en segundo plano, es decir aquellas que se estn llevando a cabo con una prioridad baja. Suelen usarla los sistemas operativos multitarea (porque claro est, nunca se podr estar realmente trabajando con dos programas al mismo tiempo en un monoprocesador) de esta forma

ADTR-ApunteProg-2011.doc

32 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


otras tareas (llamadas de primer plano o de foreground) con una prioridad ms alta dispondrn de los recursos. Foreground El trmino se refiere a las tareas que se ejecutan en primer plano. En un sistema embebido o en computador personal, el programa de primer plano es aqul con el que el usuario del computador la CPU del microcontrolador est trabajando o atendiendo actualmente y el programa de segundo plano puede ser un programa de colas de impresin, de comunicaciones, u otras tareas ejecutadas de manera cclica como pueden ser el refresco de la memoria Ram, el muestreo de las entradas digitales en un sistema con sensores, la verificacin de variables de estado, u otras tareas rutinarias. Implementacin de planos en sistemas embebidos Para el diseo e implementacin de software embebido, una de las buenas prcticas es la aplicacin de los conceptos de background y foreground. Las tareas que se ejecutan en background (segundo plano) se implementan por medio de un ciclo loop infinito en el cual se invocan a las diferentes tareas de muestreo de entradas y resolucin de mquina de estados. Las tareas de foreground (primer plano) generalmente se encargan de manejar eventos asincrnicos (interrupciones al microcontrolador) que son atendidos por las rutinas de servicio de interrupcin (ISR). Las fuentes de interrupcin suelen provenir de dispositivos externos o de sucesos internos generados por los timers del microcontrolador indicando que se alcanz un determinado tiempo preseteado. Al producirse algn evento de interrupcin el microcontrolador interrumpe la tarea en ejecucin y se ejecutan las rutinas de servicio de interrupcin (ISR) la cual verifica en primer lugar cul es la fuente de generacin de la interrupcin (un dispositivo externo un timer interno) y en funcin a ello atiende la interrupcin. Al finalizar la ejecucin de la atencin de la interrupcin el microcontrolador contina con la ejecucin de la tarea que fue interrumpida. En la siguiente figura se representa la secuencia de ejecucin de las tareas de background en un ciclo infinito y la atencin de las interrupciones por medio de la rutina deservicio de interrupcin (ISR).

La implementacin en pseudocdigo se muestra en el siguiente ejemplo.

ADTR-ApunteProg-2011.doc

33 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)

IMPLEMENTACIN DE PLANOS EN SISTEMAS OPERATIVOS El kernel del sistema operativo de tiempo real debe brindar soporte a las capas superiores para ejecutar las aplicaciones de alto nivel a travs de mquinas virtuales. Por otro lado la arquitectura de hardware es ms compleja que en un sistema embebido con lo cual se deben procesar y atender muchas ms tareas y recursos en background y foreground que en un sistema embebido.

ADTR-ApunteProg-2011.doc

34 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


Para manejar la complejidad de los recursos y procesos el kernel provee valiosos servicios para las aplicaciones: Delays de tiempo Manejo de semforos Comunicacin y sincronizacin entre tareas Los kernels pueden permitir la apropiacin o no permitirla: Non-Preemptive Preemptive En los kernels no apropiativos una vez que se le ha otorgado la CPU a un proceso, no le puede ser retirada Es decir que una vez que el proceso pasa al estado de ejecucin, contina ejecutando hasta que termina, se bloquean en espera de una E/S o al solicitar algn servicio del sistema. Esta poltica de ejecucin para terminacin fue implementada en los primeros sistemas de lote (batch). Estos sistemas no son adecuados para sistemas de tiempo real dado que no permiten satisfacer las restricciones de tiempo.

Kernel No Apropiativo

En los sistemas apropiativos a un proceso se le puede quitar la CPU para ejecutar uno de mayor prioridad. El proceso que se est ejecutando actualmente puede ser interrumpido y pasado al estado de listos por el sistema operativo. La decisin de sustituirlos por otro proceso puede llevarse a cabo cuando llega un nuevo proceso, cuando se produce una interrupcin que lleva a un proceso bloqueado al estado listo o peridicamente, en funcin de una interrupcin del reloj. Es til cuando los procesos de alta prioridad requieren atencin rpida y para garantizar buenos tiempos de respuesta en sistemas de tiempo real. Como contrapartida el cambio de contexto implica sobrecarga y adems requiere mantener muchos procesos en el almacenamiento principal, en espera de la CPU lo que tambin implica sobrecarga.

Kernel Apropiativo ADTR-ApunteProg-2011.doc 35 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)

ADTR-ApunteProg-2011.doc

36 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


BIBLIOGRAFIA / FUENTES Sistemas de Tiempo Real y Lenguajes de Programacin, Burns-Wellings, Addison Wesley. Sistemas de Tiempo Real, Weiner. NL. Daniel Calegari Garca, Universidad de la Repblica, Uruguay. Julio L. Medina, et al, Grupo de Computadores y Tiempo Real, Universidad de Cantabria. A. Alkhodre, et al, INSA, Instituto Nacional de Ciencias Aplicadas, Universidad de Lyon-Francia. Integrating Schedulability Analysis and SDL in an Object-Oriented Methodology for Embedded Real-Time Systems. Jos Mara lvarez, Manuel Daz, Luis Times - a tool for modelling and implementation of embedded systems. Tobias Amnell, Elena Fersman, Leonid Mokrushin, Paul Pettersson, y Wang Yi. En Proc. of TACAS'02, LNCS vol. 2280, pg. 460 a 464. Springer, 2002. Towards a Mechanical Verification of Real-Time Reactive Systems Modeled in UML. V.S. Alagar y D. Muthiayen. En IEEE Proceedings of Seventh International Conference on Real-Time Systems and Applications (RTCSA'00). An Integrated Environment for the Complete Development Cycle of an Object-Oriented Distributed Real-Time System. L.B.Becker, M.Gergeleit, E.Nett y C.E.Pereira, En Proccedings of 2nd. IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, pg. 165-171, Saint-Malo Francia, 1999. SIMOO-RTAn Object-Oriented Framework for the Development of Real-Time Industrial Automation Systems. Leandro Buss Becker y Carlos Eduardo Pereira, En IEEE Transactions on Robotics and Automation, vol. 18, No. 4, agosto 2002. A Structured Design Method for Real-Time Systems. Alan Burns y Andy Wellings. Real-Time Systems, vol. 6, no. 1, enero 1994. HRT-HOOD, a structured design method for hard real-time ADA systems. Alan Burns, Andy Wellings. ISBN 0 444 82164 3. Elsevier, Amsterdam, 1995. Real-Time Systems Scheduling, Analysis, and Verification. Albert M.K. Cheng. ISBN 0-471-184063. John Wiley & Sons, Inc., New Jersey, 2002. Building Reliable Component-Based Software Systems. Ivica Crnkovic y Magnus Larsson (Editores). ISBN 1-58053-327-2. Artech House publisher. 2002. Comparison of Two Significant Development Methods applied to the Design of Real-time Robot Controllers. L. Carrol, B. Tondu, C. Barron and J.C. Geffroy. 1998 IEEE International Conference on Systems, Man, and Cybernetics, vol. 4, pg. 3394-3399, 1998. En Busca de la integracin de herramientas de tiempo real a travs de un modelo abierto. J.M. Drake, M. Gonzlez Harbour, J.J. Gutirrez, J.L. Medina y J.C. Palencia. Nmero especial sobre Informtica Industrial/Sistemas de Tiempo Real de la Revista Iberoamericana de Automtica e Informtica Industrial - http:// riai.isa.upv.es/riai/principal.html, Editada por el Comit Espaol de Automtica (CEA-IFAC) - 2005 ISSN: 1697-7912, 2005. Entorno para el Diseo de Sistemas Basados en Componentes de Tiempo Real. Jos Mara Drake, Julio Medina y Michael Gonzlez Harbour. Actas de las X Jornadas de Concurrencia, Departamento de Informtica e Ingeniera de Sistemas - Universidad de Zaragoza. ISBN:8488502-98-2. Jaca, 12 al 14 junio 2002

ADTR-ApunteProg-2011.doc

37 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


Doing hard time: developing real-time systems with UML, objects, frameworks, and patterns. Bruce Powel Douglass. ISBN 0-201-49837-5, Addidson Wesley Longman, Inc., USA, 1999. Real-Time UML: developing efficient objects for embedded systems. Bruce Powel Douglass. 2da. edicin. ISBN 0-201-65784-8, Addidson Wesley Longman, Inc., USA, 2000. Real-Time Object Orientation. Bruce Powel Douglass. http://www.ilogix.com, I-Logix, Inc., white papers, Diciembre 2000. UML and the formal development of safety-critical real-time systems. A.S. Evans y A.J. Wellings. IEE Colloquium. Applicable Modeling, Verification and Analysis Techniques for Real-Time Systems, IEE, Londres, UK. pp. 2/1-4, 1999. A Modular Tool Architecture for Worst-Case Execution Time Analysis. Andreas Ermedahl. Ph.D Thesis Uppsala University. http://www.mrtc.mdh.se/publications/0570.pdf Junio 2003. Applying Use Cases for the Requirements Validation of Component-Based Real- Time Software. Wolfgang Fleisch. En Proceedings of 2nd IEEE International Symposium on Object-Oriented RealTime Distributed Computing (ISORC'99), Saint-Malo, Francia, 2-5 Mayo 1999. Modeling and Schedulability Analysis in the Development of Real-Time and Distributed Ada Systems. Jos Javier Gutirrez, Jos Mara Drake, Michael Gonzlez Harbour y Julio Medina. Proc. of the 11th International Real-Time Ada Workshop, Quebec, Canad, abril 2002. ACM Ada Letters Vol XXII, Num. 4, pg.58-65, ACM Press, diciembre 2002. Optimized Priority Assignment for Tasks and Messages in Distributed Real-Time Systems. Jos Javier Gutirrez Garca y Michael Gonzlez Harbour. Proceedings of the 3rd Workshop on Parallel and Distributed Real-Time Systems, Santa Barbara, California, pg. 124-132, Abril 1995. Towards a Real-Time Distributed Systems Annex in Ada. J.J. Gutirrez Garca y M. Gonzlez Harbour. 10th International Real-Time Ada Workshop, ACM Ada Letters, XXI, 1, pp. 62-66, March 2001. Verification of UML-based real-time system designs by means of cTLA. Gnter Graw, Peter Herrmann y Heiko Krumm. En Proceedings of the 3rd IEEE International Symposium on ObjectOriented Real-time Distributed Computing (ISORC2K), pg. 86-95, Newport Beach, IEEE Computer Society Press, 2000. Fixed Priority Scheduling of Periodic Tasks with Varying Execution Priority. M. Gonzlez Harbour, M.H. Klein, and J.P. Lehoczky. En Proceedings of the 12th. IEEE Real-Time Systems Symposium, pg. 116 a 128, Diciembre 1991. MAST: An Open Environment for Modeling, Analysis, and Design of Real-Time Systems. Michael Gonzlez Harbour, Julio Luis Medina, Jos Javier Gutirrez, Jos Carlos Palencia y Jos Mara Drake. Presentado en 1st. CARTS Workshop on Advanced Real-Time Technologies. TCP Sistemas e Ingeniera.S.L. http:// www.ctr.unican.es/publications/mgh-jlm-jjg-jcp-jmd-2002a.pdf, Aranjuez octubre 2002. Software Design Methods for Concurrent and Real-Time Systems. Hassan Gomaa. ISBN 0-20152577-1, Addison-Wesley Publishing Company, Inc., USA, 1993. Designing Concurrent, Distributed and Real-Time Aplications with UML. Hassan Gomaa. ISBN 0201-65793-7, Addison-Wesley, USA, 2000. Using the Model Paradigm for Real-Time Systems Develoment: ACCORD/UML. Sbastien Grard, Franois Terrier y Yann Tanguy. Presentado en Workshop in Model-Driven Approaches to

ADTR-ApunteProg-2011.doc

38 / 40ADTR Cd. 32-407

ANALISIS Y DISEO DE SISTEMAS EN TIEMPO REAL (ADTR)


Software Development, 8th International Conference on Object-Oriented Information Systems (OOIS'02-MDSD) Montpellier FRANCE, Septiembre 2002. Publicado por Springer en LNCS 2426, pg. 260 a 269. 2002. Planificacin, anlisis y optimizacin de sistemas distribuidos de tiempo real estricto. Jos Javier Gutierrez Garca y Michael Gonzlez Harbour (Director). Tesis Doctoral, Universidad de Cantabria, 1995. Capturing an application's temporal properties with UML for Real-Time. Weiguo He y Steve Goddard. Fifth IEEE International Symposim on High Assurance Systems Engineering, 2000, HASE 2000 , pg. 65 -74, 2000. Components in real-time systems. D. Isovic y C. Norstrm. En Proceedings of the Eight International Conference on Real-Time Computing Systems and Applications (RTCSA'02), pg. 135-139, Tokyo, Japn, Marzo 2002. Distributed fault-tolerant real-time systems: The MARS approach. Hermann Kopetz, Andreas Damm, Christian Koza, Marco Mulazzani, Wolfgang Schwabl, Christoph Senft y Ralph Zainlinger. IEEE Micro, 9(1) pg. 25-40, Febrero 1989. Real-Time Systems: Design Principles for Distributed Embedded Applications. Hermann Kopetz. ISBN 0-7923-9894-7. Kluwer Academic Publishers. 1997. The design of real-time systems: from specification to implementation and verification. Kopetz, H., Zainlinger, R., Fohler, G., Kantz, H., Puschner, P. Y Schutz, W., Software Engineering Journal, vol. 6, no. 3, pg. 72-82. Mayo 1991. Response Time Analysis for Distributed Real-Time Systems with Bursty Job Arrivals. Chengzhi Li, Riccardo Bettati y Wei Zhao, International Conference on Parallel Processing (ICPP 1998), Minneapolis USA, August 1998. Software Component Technologies for Real-Time Systems - An Industrial Perspective -. Anders Mller, Mikael kerholm, Johan Fredriksson, Mikael Nolin. En Work-in-Progress Session of the 24th IEEE Real-Time System Symposium (RTSS), Cancn, Mxico, Deciembre 2003. Minimal Real-Time Operating System for Embedded Applications. Mario Aldea Rivas and Michael Gonzlez Harbour. Departamento de Electrnica y Computadores, Grupo de Computadores y Tiempo Real, Universidad de Cantabria.

ADTR-ApunteProg-2011.doc

39 / 40ADTR Cd. 32-407

Anda mungkin juga menyukai