1 / 31

Interacci ó n entre Tareas

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

vidar
Download Presentation

Interacci ó n entre Tareas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Interacción entre Tareas Dr. Pedro Mejía Alvarez Sección de Computación. CINVESTAV-IPN

  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.

  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

  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.

  5. Comunicacion entre procesos mediante Buzones

  6. Coordinacion entre procesos mediante semaforos

  7. Datos en memoria compartida utilizados por varios procesos

  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 comunes • Puede 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

  9. Ejemplo: A B Incrementar Contador LDA contador INC STA contador Incrementar Contador LDA contador INC STA contador 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)

  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

  11. Diagrama de secuencia de mensajes • Representan la interacción • entre procesos mediante • el intercambio de mensajes • El tiempo va hacia abajo B A B send receive Buzón

  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.

  13. Comunicación Asíncrona • 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. A B send Buzón receive

  14. Comunicación Síncrona • 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. A B send Buzón receive mensaje A send(m); receive (ack); B receive(m); send (ack);

  15. Invocación Remota • 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. A B send mensaje receive bloqueo reply A s_send(m); s_receive (ack); B s_receive(m); preparar reply s_send(r);

  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.

  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.

  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

  19. Ejemplo 1 X Y

  20. Ejemplo 1: inversión de prioridad bloqueo a1 ax ay a2 b1 by by b2 c1 d1 dx dx d2 0 2 4 6 8 10 12 14 16 18

  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

  22. Ejemplo 1: herencia de prioridad a1 ax ay a2 b1 by by b2 c1 d1 dx dx d2 0 2 4 6 8 10 12 14 16 18

  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

  24. Ejemplo 1: cálculo de bloqueo • B = C + C = 2+4=6 • B = C = 4 • B = C = 4 • B = 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,Y 4, X 2 4, X 4, X 3 4

  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 de recurrencia

  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

  27. Ejemplo 1: techo de prioridad a1 ax ay a2 by b1 by b2 c1 d1 dx dx dx d2 0 2 4 6 8 10 12 14 16 18

  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 = maxC • lc(i)es el conjunto de recursos que pueden bloquear i j,k felp(f),k lc(i)

  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 )

  30. Ejemplo 1: techo de prioridadinmediato a1 ax ay a2 b1 by b2 c1 d1 dx d2 0 2 4 6 8 10 12 14 16 18

  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

More Related