Descargar

Sistemas en tiempo real (STR)

Enviado por Pablo Turmero


    edu.red

    Sistemas en tiempo real (STR) Definición y características Concurrencia Comunicación y sincronización Variables compartidas Semáforos Monitores Métodos sincronizados Paso de mensajes

    edu.red

    2 Definición de sistemas de tiempo real Cualquier actividad o proceso de información que tiene que responder a un estímulo de entrada generado externamente en un periodo finito y especificado (Young 1982).

    Un sistema de tiempo real es aquel al que se le solicita que reaccione a estímulos del entorno en intervalos de tiempo fijados por el entorno (Randell 1995).

    edu.red

    3 Sistemas de tiempo real Sistema Recibe eventos del entorno Responder de acuerdo a un comportamiento determinado y en un tiempo determinado

    edu.red

    4 Componente de un sistema mayor Sistemas empotrados o embebidos Sistemas de tiempo real

    edu.red

    5 Sistemas de tiempo real Resultados lógicos. Tiempo en el que se producen esos resultados.

    El tiempo en que se ejecutan las acciones del sistema es significativo

    edu.red

    6 Características de los STR (1) Complejos: Algunos sistemas tienen millones de líneas de código la variedad de funciones aumenta la complejidad incluso en sistemas relativamente pequeños Control concurrente de los distintos componentes del sistema: los dispositivos físicos controlados funcionan al mismo tiempo las tareas que los controlan actúan concurrentemente

    edu.red

    7 Características de los STR (2) Fiable y seguro: sistemas críticos: fallos con consecuencias graves pérdida de vidas humanas pérdidas económicas daños medioambientales Implementación eficiente: Son críticos respecto al tiempo, lo que implica que una implementación eficiente es importante

    edu.red

    8 Características de los STR (3) Interface con sistemas hardware: Los sistemas embebidos requieren que el software esté preparado para su interacción con el mundo exterior Funcionalidades de tiempo real: acciones en intervalos de tiempo determinados – es fundamental que el comportamiento temporal de los STR sea determinista o, al menos, previsible 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

    edu.red

    9 Otras características Los recursos están limitados – procesador, memoria, pantalla, etc. Los dispositivos de entrada y salida son especiales para cada sistema – no hay teclado ni pantalla normales El computador debe reaccionar a tiempo ante los cambios en el sistema físico. – una acción retrasada puede ser inútil o peligrosa

    edu.red

    10 Tipos de sistemas de tiempo real Estrictos (hard real time): las respuestas se deben producir en los tiempos especificados. (sistemas de control de vuelos) Realmente estrictos: los tiempos de respuestas son muy breves: (sistema de guía de misiles) No estrictos (soft real time): el tiempo es importante pero el sistema se degrada, aunque seguirá funcionando a pesar de que los tiempos no se cumplan estrictamente.(sistema de adquisición de datos).

    edu.red

    11 Aplicaciones Control de procesos. Fabricación (control de producción). Comunicación, mando y control. Reserva de pasajes aéreos Control de pacientes Control de tráfico

    La mayoría de estos sistemas son concurrentes

    edu.red

    12 Características de los STR Complejos. Control concurrente de distintos componentes del sistema Fiable y seguro Implementación eficiente Interface con sistemas hardware Funcionalidades de tiempo real

    edu.red

    13 Concurrencia Son la notación y las técnicas de programación que expresan el paralelismo potencial Un programa concurrente es un conjunto de procesos autónomos que se ejecutan en paralelo.

    edu.red

    14 Procesos concurrentes El trabajar con procesos concurrentes añade complejidad a la tarea de programar

    ¿cuáles son entonces los beneficios que aporta la programación concurrente?

    edu.red

    15 Beneficios de la programaciónconcurrente Mejor aprovechamiento de la CPU Velocidad de ejecución Solución de problemas de naturaleza concurrente Sistemas de control Tecnologías web Aplicaciones basadas en interfaces de usuarios Simulación SGDB

    edu.red

    16 Proceso Es una instancia de ejecución de un programa. Tiene un ciclo de vida, es decir pasa por distintos estados.

    edu.red

    17 Ciclo de vida de un proceso (Gp:) terminado

    (Gp:) nacido

    listo (Gp:) ejecución

    (Gp:) No existente

    (Gp:) No existente

    edu.red

    18 Finalización de un proceso Finaliza la ejecución de su cuerpo. Ejecución de alguna sentencia de auto finalización. Condición de error sin tratar. Aborto por medio de la intervención de otro proceso. Nunca: procesos que se ejecutan en bloques que no terminan. Cuando ya no son necesarios.

    edu.red

    19 Implementación de un conjunto de procesos Multiplexar sus ejecuciones en un único procesador (multiprogramación). Multiplexar sus ejecuciones en un sistema multiprocesador con acceso a memoria compartida (multiprocesamiento) Multiplexar sus ejecuciones en diversos procesadores que no comparten memoria (sistema distribuído)

    edu.red

    20 Ejecución de un programa concurrente Los procesos deben ser creados, distribuidos en los procesadores y finalizados. Estas actividades la realiza el nucleo de ejecución conocido como Run Time System Support (RTSS). Se encarga de la creación, terminación y multiplexado de los procesos

    edu.red

    21 Run Time System Support Estructura software programada como parte de la aplicación (Modula-2). Sistema software generado junto al código objeto del programa por el compilador. (Ada y Java). Estructura hardware microcodificada en el procesador.

    edu.red

    22 Ejecución de los procesos Todos los SO tiene formas de crear procesos. Cada proceso se ejecuta en su propia maquina virtual. Los SO modernos permiten crear hilos (procesos ligeros) dentro de la misma máquina virtual.

    edu.red

    23 ¿Quien provee los mecanismos de concurrencia? Sistema operativo (SO de Tiempo real)

    Lenguaje ( lenguaje que proporciona mecanismos para concurrencia)

    edu.red

    24 Ventajas si el lenguaje proporciona los mecanismos de concurrencia Programas más legibles Programas más portables Si el sistema es embebido puede que no tenga un SO residente

    edu.red

    25 Ventajas si el SO proporciona la concurrencia El modelo de concurrencia es el mismo para todos los lenguajes. Puede no ser fácil implementar el modelo de concurrencia sobre algún modelo de SO

    edu.red

    26 Representación de procesos Depende del lenguaje: Process Modula Task Ada Thread Java

    edu.red

    27 Programación concurrente Los lenguajes concurrentes tiene elementos para: Crear procesos concurrentes Sincronizar procesos Comunicar procesos

    edu.red

    28 Comportamiento de procesos Independientes: no se sincronizan ni comunican. (son muy raros)

    Cooperativos: se comunican y sincronizan sus actividades. Competitivos: compiten por recursos del sistema.

    edu.red

    29 Sincronizar y Comunicar Sincronizar: Satisfacer las restricciones en el enlazado de las acciones de los distintos procesos. Comunicar: pasar información de un proceso a otro.

    edu.red

    30 Sincronizar y Comunicar Variables compartidas: objetos a los que puede acceder más de un proceso Paso de mensajes: intercambio explícito de datos entre dos procesos mediante el paso de un mensaje mediante alguna forma que brinda el SO o el propio lenguaje.

    edu.red

    31 Variables compartidas Son objetos a los que puede acceder mas de un proceso.

    La comunicación se logra accediendo a dichas variables cuando sea necesario Trae problemas

    edu.red

    32 Mensajes El intercambio de mensajes implica el paso explícito de datos entre un proceso y otro. Esto se realiza mediante algún mecanismo

    edu.red

    33 Variables compartidas Considere dos procesos que actualizan una variable compartida, X, mediante la sentencia: X:= X+1 Carga el valor de X en algún registro. Incrementa el valor en el registro en 1. Almacena el valor del registro de nuevo en X. Como ninguna de las tres operaciones es indivisible, dos procesos que actualicen la variable simultáneamente generarían un entrelazamiento que podría producir un resultado incorrecto.

    edu.red

    34 Variables compartidas Las partes de un proceso que tienen acceso a las variables compartidas han de ejecutarse indivisiblemente unas respecto a las otras. Estas partes se denominan secciones críticas. La protección requerida se conoce como exclusión mutua.

    edu.red

    35 Sección crítica: secuencia de instrucciones que debe ejecutarse sin perder el control, y afecta variables compartidas. Si un proceso esta ejecutando código de su sección crítica, ningún otro proceso puede estar ejecutando código de su sección crítica Variables compartidas

    edu.red

    36 Exclusión mutua: es el mecanismo que asegura que solo un proceso está haciendo algo en un instante determinado. Sincronización para proteger una sección crítica. Es necesario si dos procesos comparten variables. Sincronización condicionada: necesaria cuando un proceso necesita realizar alguna acción, solo después que se haya cumplido una condición.

    Sincronizaciones necesarias en la programación concurrente

    edu.red

    37 Sincronización de condición Utilización de buferes: productor / consumidor Son aquellos problemas en los que existe un conjunto de procesos que producen información que otros procesos consumen, siendo diferentes las velocidades de producción y consumo de la información. Este desajuste en las velocidades, hace necesario que se establezca una sincronización entre los procesos de manera que la información no se pierda ni se duplique, consumiéndose en el orden en que es producida.

    edu.red

    38 Variables compartidas Semáforos Monitores tipos protegidos Metodos sincronizados

    edu.red

    39 Semáforos Introdujo Dikstra en 1968. Permite resolver la mayoría de los problemas de sincronización entre procesos y forma parte del diseño de muchos sistemas operativos y de lenguajes de programación concurrentes.

    edu.red

    ESTA PRESENTACIÓN CONTIENE MAS DIAPOSITIVAS DISPONIBLES EN LA VERSIÓN DE DESCARGA