Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Sistemas en tiempo real (STR)




Enviado por Pablo Turmero



    Monografias.com

    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

    Monografias.com

    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).

    Monografias.com

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

    Monografias.com

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

    Monografias.com

    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

    Monografias.com

    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

    Monografias.com

    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

    Monografias.com

    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

    Monografias.com

    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

    Monografias.com

    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).

    Monografias.com

    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

    Monografias.com

    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

    Monografias.com

    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.

    Monografias.com

    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?

    Monografias.com

    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

    Monografias.com

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

    Monografias.com

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

    (Gp:) nacido

    listo
    (Gp:) ejecución

    (Gp:) No existente

    (Gp:) No existente

    Monografias.com

    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.

    Monografias.com

    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)

    Monografias.com

    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

    Monografias.com

    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.

    Monografias.com

    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.

    Monografias.com

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

    Lenguaje ( lenguaje que proporciona mecanismos para concurrencia)

    Monografias.com

    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

    Monografias.com

    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

    Monografias.com

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

    Monografias.com

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

    Monografias.com

    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.

    Monografias.com

    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.

    Monografias.com

    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.

    Monografias.com

    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

    Monografias.com

    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

    Monografias.com

    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.

    Monografias.com

    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.

    Monografias.com

    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

    Monografias.com

    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

    Monografias.com

    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.

    Monografias.com

    38
    Variables compartidas
    Semáforos
    Monitores tipos protegidos
    Metodos sincronizados

    Monografias.com

    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.

    Monografias.com

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

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter