Sistemas en tiempo real (STR)

61
Sistemas en tiempo real (STR)

description

Sistemas en tiempo real (STR). 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. Definición de sistemas de tiempo real. - PowerPoint PPT Presentation

Transcript of Sistemas en tiempo real (STR)

Page 1: Sistemas en tiempo real (STR)

Sistemas en tiempo real (STR)

Page 2: Sistemas en tiempo real (STR)

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

Page 3: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 3

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

Page 4: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 4

Sistemas de tiempo real

Sistema

Recibe eventos del entorno Responder de acuerdo

a un comportamiento determinado y en un tiempo determinado

Page 5: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 5

Componente de un sistema mayor

Sistemas empotrados o embebidos

Sistemas de tiempo real

Page 6: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 6

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

Page 7: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 7

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

Page 8: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 8

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

Page 9: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 9

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

Page 10: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 10

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

Page 11: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 11

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

Page 12: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 12

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

Page 13: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 13

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

Page 14: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 14

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.

Page 15: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 15

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?

Page 16: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 16

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

Page 17: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 17

Proceso

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

estados.

Page 18: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 18

Ciclo de vida de un proceso

terminado

nacido

listo

ejecución

No existente

No existente

Page 19: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 19

Finalización de un proceso

1. Finaliza la ejecución de su cuerpo.

2. Ejecución de alguna sentencia de auto finalización.

3. Condición de error sin tratar.

4. Aborto por medio de la intervención de otro proceso.

5. Nunca: procesos que se ejecutan en bloques que no terminan.

6. Cuando ya no son necesarios.

Page 20: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 20

Implementación de un conjunto de procesos

1. Multiplexar sus ejecuciones en un único procesador (multiprogramación).

2. Multiplexar sus ejecuciones en un sistema multiprocesador con acceso a memoria compartida (multiprocesamiento)

3. Multiplexar sus ejecuciones en diversos procesadores que no comparten memoria (sistema distribuído)

Page 21: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 21

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

Page 22: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 22

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.

Page 23: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 23

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.

Page 24: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 24

¿Quien provee los mecanismos de concurrencia?

• Sistema operativo (SO de Tiempo real)

• Lenguaje ( lenguaje que proporciona mecanismos para concurrencia)

Page 25: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 25

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

Page 26: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 26

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

Page 27: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 27

Representación de procesos

• Depende del lenguaje:– Process Modula– Task Ada– Thread Java

Page 28: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 28

Programación concurrente

Los lenguajes concurrentes tiene elementos para:• Crear procesos concurrentes• Sincronizar procesos• Comunicar procesos

Page 29: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 29

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.

Page 30: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 30

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.

Page 31: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 31

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.

Page 32: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 32

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

Page 33: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 33

Mensajes

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

Page 34: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 34

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.

Page 35: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 35

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.

Page 36: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 36

• 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

Page 37: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 37

– 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

Page 38: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 38

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.

Page 39: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 39

Variables compartidas

• Semáforos

• Monitores tipos protegidos

• Metodos sincronizados

Page 40: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 40

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.

Page 41: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 41

Semáforos binarios

Es un indicador de condición que registra si un recurso está disponible o no.

Solo puede tomar dos valores (semáforo binario):

1: recurso disponible

0: recurso no disponible

Se le asocia una cola de tareas.

Page 42: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 42

SemáforosSólo se permiten tres operaciones sobre un semáforo:• inicializa (S: SemaforoBinario; v: integer)

Poner el valor del semáforo S al valor de v (0 o 1)

• espera (S) (wait(s))

if S = 1 then (hacer lo que deba hacer) S := 0

else suspender la tarea que hace la llamada y ponerla en la cola de tareas

• señal (S) (signal(s))

if la cola de tareas está vacía then S := 1

else reanudar la primera tarea de la cola de tareas

Page 43: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 43

Sincronización de condición con semáforosvar S : semaforo (inicialmente en 0)process p1..........wait(S); //espera hasta que S=1..........end p1;

process p2..............signal(S);..........

end p2;

El uso de wait y signal se da en dos procesos por separado. En uno se ejecuta wait y en el otro signal.

Page 44: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 44

var mutex : semaforo; (inicialmente a 1)

process p1 loop

wait(mutex) (mutex =1 entra seccion critica) <seccion critica> signal(mutex); <seccion no critica>

endendp 1;

Exclusión mutua con semáforosvar mutex : semaforo; (inicialmente a 1)

process p2

loop

wait(mutex)

<seccion critica>

signal(mutex);

<seccion no critica>

end

endp 2;wait: se usa como operación de bloqueo

signal: se usa como operación de desbloqueo

Page 45: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 45

Semáforos para proteger un conjunto de recursos

En caso que exista un conjunto de recursos similares, se puede usar una versión más general de semáforo que lleve la cuenta del número de recursos disponibles. En este caso el semáforo se inicializa con el número total de recursos disponibles (N) y las operaciones de espera y señal se diseñan de modo que se impida el acceso al recurso protegido por el semáforo cuando el valor de éste es menor o igual que cero.

Page 46: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 46

Los semáforos tienen algunas características que pueden generar incovenientes:•las variables compartidas son globales a todos los procesos.•las acciones que acceden y modifican dichas variables están diseminadas por los procesos.•para poder decir algo del estado de las variables compartidas, es necesario mirar todo el código.•la adición de un nuevo proceso puede requerir verificar que el uso de las variables compartidas es el adecuado.

Programas poco escalables

Características de los semáforos

Page 47: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 47

Críticas a los semaforos

• Si el semáforo se ubico en un lugar erróneo falla y estamos en presencia de un sistema en tiempo real, falla el programa completo

No se garantiza la exclusión mutua

Posible solución : monitores

Page 48: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 48

Monitores

Es un conjunto de procedimientos que proporciona el acceso con exclusión mutua a un recurso o conjunto de recursos (datos o dispositivos) compartidos por un grupo de procesos. Los procedimientos van encapsulados dentro de un módulo que tiene la propiedad especial de que sólo un proceso puede estar activo cada vez para ejecutar un procedimiento del monitor.

Page 49: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 49

Características de un monitorEs un TAD:• uso independiente de la implementación.• el usuario no conoce la implementación.• nada se sabe del orden en que se van a invocar acciones

del monitor.• por lo que necesita una correcta especificación.

Page 50: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 50

Funcionamiento de un monitor

Respecto a la sincronización:• la exclusión mutua se asegura por

definición:– por lo tanto, sólo un proceso puede estar

ejecutando acciones de un monitor en un momento dado.

– aunque varios procesos pueden en ese momento ejecutar acciones que nada tengan que ver con el monitor

Page 51: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 51

la sincronización condicionada:– cada proceso puede requerir una sincronización

distinta, por lo que hay que programar cada caso.

– para ello, se usarán las variables “condición”:• se usan para hacer esperar a un proceso hasta que

determinada condición sobre el estado del monitor se “anuncie”

• también para despertar a un proceso que estaba esperando por su causa

Funcionamiento de un monitor

Page 52: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 52

Monitores

• Existe necesidad de sincronización de condición.

• Se maneja con dos operadores que se llaman wait y signal.

Page 53: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 53

Monitores

• Un wait siempre bloquea y se ubica en una cola asociada a esa variable de condición.

• Cuando un proceso bloqueado libera su bloqueo permitirá ingresar a otro proceso.

• Cuando un proceso ejecuta una operación signal, liberará un proceso bloqueado.

Page 54: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 54

Críticas a monitores

• Solución elegante a problemas de exclusión mutua.

• No soluciona bien las sincronizaciones de variables de condición.

Page 55: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 55

Métodos sincronizados

• Es el concepto de monitor implementado en el paradigma de Orientación a Objetos

• Se utilizan en como Java, que tiene la concurrencia totalmente integrada.

Page 56: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 56

Métodos sincronizados

• Los métodos se califican con el modificador synchronized.

• Puede existir también synchronized a nivel de bloque.

Page 57: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 57

Paso de mensajes

• Se necesita un proceso emisor y uno receptor.

• Información para intercambiar.

• Operaciones básicas son: – Enviar (mensaje)– Recibir (mensaje)

Page 58: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 58

Paso de mensajes

• Se debe establecer un enlace entre receptor y emisor:– Modelo de sincronización– Como nombrar los procesos– Estructura del mensaje

Page 59: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 59

Modelo de sincronización

• Sincronización implícita: un proceso no puede recibir un mensaje antes que el emisor lo haya emitido.– Asíncrona: el emisor continua sin saber si el mensaje

llegó o no

– Síncrona: el emisor continua solo cuando se recibió el mensaje

– Invocación remota: el emisor continua sólo cuando se recibió una respuesta desde el receptor

Page 60: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 60

Nombrado de procesos

Dirección:

nombrado directo:

envía <msj> <proceso>

nombrado indirecto:

envía <msj> <buzón>

Simetría:

simétrico:si el emisor y el receptor se pueden nombrar entre sí

envía <msj> <proceso>

espera <msj> <proceso>

asimétrico:

espera <msj>

Page 61: Sistemas en tiempo real (STR)

Informática III 2008 Ing. Estela D'Agostino 61

Estructura del mensaje

• Idealmente: cualquier objeto.

• Cada lenguaje ha impuesto sus restricciones.