Interacci ó n entre Tareas

31
Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Interacción entre Tareas Dr. Pedro Mejía Alvarez Sección de Computación. CINVESTAV-IPN

description

Interacci ó n entre Tareas. Dr. Pedro Mejía Alvarez Secci ó n de Computaci ó n. CINVESTAV-IPN. Indice. Comunicación y Sincronizacion Comunicación con datos comunes Comunicación mediante mensajes Problemas en la Interacción entre tareas. Inversión de Prioridad - PowerPoint PPT Presentation

Transcript of Interacci ó n entre Tareas

Page 1: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 1

Interacción entre Tareas

Dr. Pedro Mejía Alvarez

Sección de Computación.CINVESTAV-IPN

Page 2: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 2

Indice

Comunicación y Sincronizacion Comunicación con datos comunes Comunicación mediante mensajes Problemas en la Interacción entre tareas. Inversión de Prioridad Protocolos.

Page 3: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 3

Interacción entre tareas

En la mayoría de los sistemas de interés práctico las tareas interaccionan mediante

— datos comunes (protegidos)— mensajes— señales

La interacción puede darse entre tareas con distintas prioridades.El acceso a datos comunes debe protegerse.El uso de mensajes se produce a traves de buzones.El uso de señales se produce a traves de semáforos En todos estos casos puede ocurrir que una tarea tenga que esperar un suceso de otra menos prioritaria

Page 4: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 4

Comunicación y Sincronización

Raras veces los procesos de un sistema son independientes unos de otros. Mas a menudo, cooperan para un fin común o compiten por la utilización de los recursos.Para ello, es necesario realizar operaciones de comunicación y sincronización entre procesos.

—Dos procesos se comunican cuando hay una transferencia de información de uno a otro.— Dos procesos estan sincronizados cuando hay restricciones en el orden en que se ejecutan sus acciones.

Los dos conceptos estan relacionados.Hay distintas formas de abordar el problema:

— Datos comunes.— Mensajes.

Page 5: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 5

Comunicacion entre procesos mediante Buzones

Page 6: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 6

Coordinacion entre procesos mediante semaforos

Page 7: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 7

Datos en memoria compartida utilizados por varios procesos

Page 8: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 8

Comunicacion con datos comunes

En un sistema monoprocesador, la forma mas directa de comunicación entre dos o mas procesos consiste en compartir datos comunes.

El acceso incontrolado a variable comunesPuede producir resultados anomalos.

—Se dice que hay una condicion de carrera cuando el resultado de la ejecucion depende del orden en que se intercalan las instrucciones de dos o mas procesos.—Se trata de una situacion que hay que evitar

Page 9: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 9

Ejemplo:

Incrementar Contador

LDA contadorINCSTA contador

Incrementar Contador

LDA contadorINCSTA contador

A B

Contador = 0

•El resultado final puede ser 1 o 2•Depende de las velocidades relativas de los procesos.•Para evitar este problema hay que asegurar que las•Operaciones con variable comunes sean atómicas.

•Deben de usarse mecanismos de exclusión mutua (p.ej. Semàforos)

Page 10: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 10

Comunicacion mediante mensajes

Las tareas se pueden comunicar y sincronizar mediante mensajes. Esta forma de comunicacion no necesita de memoria comun. Es posible utilizar buzones como mencanismo de comunicación. Hay tres aspectos de interes:

—Sincronizacion.—Identificacion del proceso emisor y receptor.—Estructura de los mensajes

Page 11: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 11

Diagrama de secuencia de mensajes

send receive

A BB•Representan la interacción entre procesos mediante el intercambio de mensajes•El tiempo va hacia abajo

Buzón

Page 12: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 12

Sincronización en el envío de mensajes

El proceso receptor siempre espera si el mensaje no ha llegado todavia. Para el proceso emisor hay tres modelos basicos:

– Comunicación asíncrona: el emisor continua su ejecución.– Comunicación síncrona (cita): el emisor espera a que el receptor reciba el mensaje.– Invocación remota (cita extendida): el emisor espera a que el receptor reciba el mensaje, y la respuesta de éste.

Page 13: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 13

Comunicación Asíncrona

send

receive

A•El numero de mensajes que pueden enviarse depende del tamaño del buzón.•El emisor puede saturar el buzón (si no hay receptcion) y hasta entonces bloquearse.•El receptor puede bloquearse si el buzón se encuentra vacio.

Buzón

B

Page 14: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 14

Comunicación Síncrona

send

receive

A•El buzón acepta solo un mensaje•Al enviar un mensaje el emisor espera (bloqueado) hasta que el receptor ha recibido el mensaje.• Lo mismo ocurre cuando el receptor ejecuta el receive primero.

Buzón

mensaje

Asend(m);receive (ack);

Breceive(m);send (ack);

B

Page 15: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 15

Invocación Remota

send

receive

A•El buzón acepta solo un mensaje•Al enviar un mensaje el emisor espera (bloqueado) hasta que el receptor ha recibido el mensaje.• Lo mismo ocurre cuando el receptor ejecuta el receive primero.mensaje

As_send(m);

s_receive (ack);

reply

bloqueo

Bs_receive(m);preparar replys_send(r);

B

Page 16: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 16

Estructura de los mensajes

El mensaje podria llevar los siguentes campos:–Encabezado.–Identificador del emisor.–Identificador del receptor.–Longitud del mensaje–Mensaje.–Campo de ack.–Campo de seguridad

El contenido del mensaje deberia poder ser de cualquier tipo.

Page 17: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 17

Identificación del emisor y el receptor

Identificación directa o indirecta:–Directa: el emisor identifica explicitamente al receptor send mensaje to proceso –Indirecta: se utiliza un intermediario (buzón, canal, tubería, etc) send mensaje to buzón

Simetria:–Comunicacion simétrica: el emisor identifica al receptor y viceversa. send mensaje to proceso (buzón) receive mensaje from proceso (buzón)–Comunicacino Asimétrica: el receptor acepta mensajes de cualquier emisor o buzón.

Page 18: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 18

Problemas con la Interacción entre tareas

Cuando dos o mas tareas comparten datos, sen envian mensajes o se sincronizan entre si, puede ocurrir que una tarea tenga que esperar un suceso de otra menos prioritaria Esta situación se denomina bloqueo, y produce una inversión de prioridad indeseable La inversión de prioridad no se puede eliminar completamente, pero es posible limitar su duración

Page 19: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 19

Ejemplo 1

X Y

1 2 3 4

Tarea P ta Acciones1 4 4 a1 ; ax ; ay ; a22 3 2 b1 ; by ; b23 2 2 c14 1 0 d1 ; dx ; d2

Acción P C usaa1 4 2ax 4 1 Xay 4 1 Ya2 4 1b1 3 1

by

by 3 2 Yb2 3 1c1 2 2d1 1 1dx 1 4 Xd2 1 1

by

Page 20: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 20

Ejemplo 1: inversión de prioridad

1

2

3

40 2 4 6 8 10 12 14 16 18

bloqueo

a1 ax ay a2

b1 by by b2

c1

d1 dx dx d2

Page 21: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 21

Herencia de prioridad

Una forma de reducir la duración de los bloqueos es variar dinámicamente la prioridad de las tareas Cuando una tarea está bloqueando a otra más prioritaria, hereda la prioridad de está La prioridad dinámica de una tarea es el máximo de

— su prioridad básica— las prioridades de todas las tareas bloqueadas por ella

La herencia de prioridad es transitiva

Page 22: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 22

Ejemplo 1: herencia de prioridad

1

2

3

40 2 4 6 8 10 12 14 16 18

a1 ax ay a2

b1 by by b2

c1

d1 dx dx d2

Page 23: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 23

Duración máxima de bloqueo

Con el protocolo de herencia de prioridad, una tarea se puede bloquear como máximo

— una vez por cada sección crítica— una vez por cada tarea de prioridad inferior

La duración total máxima de los bloqueos es

donde—K es el número de recursos compartidos—C es el tiempo durante el cual la tarea j accede al

recurso K(=0 si no usa el recurso)j,k

B Ci j kj ip i k

,

( ),

Page 24: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 24

Ejemplo 1: cálculo de bloqueo

B = C + C = 2+4=6B = C = 4B = C = 4B = 0

— Una tarea puede bloquearse por recursos a los que no— accede (por ejemplo, 2)— Una tarea puede sufrir bloqueo aunque no acceda a— recursos compartidos (por ejemplo, 3)— La tarea de menor prioridad ( 4) no sufre bloqueo

1

2

3

4

2,Y

4, X

4, X

4, X

Page 25: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 25

Tiempo de respuesta con bloqueos

Cuando hay bloqueos, la ecuación del tiempo de respuesta queda así:

La solución se obtiene mediante la relación derecurrencia

R C BR

TCj j j

j

jj

j hp i

( )

W C BW

TCi

nj j

jn

jj

j hp i

1

( )

Page 26: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 26

Protocolos de techo de prioridad

El techo de prioridad de un recurso es la máxima prioridad de las tareas que lo usan El protocolo del techo de prioridad consiste en:

— la prioridad dinámica de una tarea es el máximo de su prioridad básica y las prioridades de las tareas a las que bloquea— una tarea sólo puede usar un recurso si su prioridad dinámica es mayor que el techo de todos los recursos en uso por otras tareas

Page 27: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 27

Ejemplo 1: techo de prioridad

1

2

3

40 2 4 6 8 10 12 14 16 18

a1 ax ay a2

b1

by

by b2

c1

d1 dx dx d2dx

Page 28: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 28

Propiedades

Cuando se usa el protocolo del techo de prioridad en un sistema monoprocesador,

— Cada tarea se puede bloquear una vez, como máximo, en cada ciclo— No puede haber interbloqueos— No puede haber bloqueos encadenados — Se consigue la exclusión mutua sin mecanismos de protección adicionales

La duración máxima del bloqueo es ahora B = max C

lc(i) es el conjunto de recursos que pueden bloquear i

felp(f),k lc(i) j,k

Page 29: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 29

Protocolo del techo de prioridadinmediato

Con este protocolo, una tarea que accede a un recurso hereda inmediatamente el techo de prioridad del recurso

— la prioridad dinámica de una tarea es el máximo de su prioridad básica y los techos de prioridad de los recursos que usa

Las propiedades son las mismas que las del protocolo del techo de prioridad, y además,

— si una tarea se bloquea, lo hace al principio del ciclo Es más fácil de implementar que el protocolo básico Es más eficiente ( menos cambios de contexto )

Page 30: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 30

Ejemplo 1: techo de prioridadinmediato

1

2

3

40 2 4 6 8 10 12 14 16 18

a1 ax ay a2

b1 by b2

c1

d1 dx d2

Page 31: Interacci ó n entre Tareas

Dr. Pedro Mejía Alvarez Curso Sistemas de Tiempo Real Transparencia 31

Resumen

Un método de planificación tiene dos partes:— un algoritmo de reparto de recursos— un método de análisis del comportamiento temporal

El método clásico se basa en un ejecutivo cíclico— el análisis es inmediato (por construcción)— es poco flexible y de bajo nivel

Un método mejor se basa en el uso de prioridades fijas— las prioridades se asignan por orden de período, plazos o de forma arbitraria— se puede analizar el tiempo de respuesta de las tareas— se pueden analizar tareas con interacción si se usa un protocolo de herencia o techo de prioridad