1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas...

23
1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3. Secuenciamiento adecuado en caso de dependencias 2 y 3 aplica también a threads.

Transcript of 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas...

Page 1: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

1

Sincronización de Procesos

1. Formas de pasaje de información

2. Actividades críticas protejidas (p. ej. actualización de información compartida)

3. Secuenciamiento adecuado en caso de dependencias

2 y 3 aplica también a threads.

Page 2: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

2

Condiciones de Competencia

Dos procesos quieren acceder a memoria compartida al mismo tiempo.

El resultado final depende de cuando ejecuta cada uno.

Page 3: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

3

Regiones Críticas (1)Parte del programa donde se accede a la memoria

compartida.Se deben dar 4 condiciones para proveer una comunicación

correcta y eficiente:

1. Exclusión Mutua: ningún par de procesos puede estar e la región crítica en forma simultánea.

2. No se debe hacer ninguna asunción acerca de la velocidad o número de CPUs.

3. Avance: ningún proceso ejecutando fuera de su sección crítica puede ser bloqueado por otro proceso.

4. Fairness: ningún proceso debe esperar por siempre para entrar a su sección crítica.

Page 4: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

4

Regiones Críticas (2)

Exclusión mutua usando regiones críticas.

Page 5: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

5

Exclusión Mutua Usando Espera Activa

1. Desabilitano las interrupciones. (Sólo el kernel)

2. Variables de Lock => race condition3. Alternancia estricta usando spin locks –

viola la condición 3.4. Solución de Peterson5. Test-and-set locks (TSL)

Page 6: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

6

Alternancia Estricta

Solución propuesta para el problema de la región crítica(a) Proceso 0. (b) Proceso 1.

Page 7: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

7

Solución de Peterson

Interested(process)= False => el proceso no ingresó y no quiere ingresar a la sección crítica.

Si ambos están interesados, un proceso sólo puede entrar si es el turno del otro.

Page 8: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

8

Test-and-set lock

Entrando y saliendo de la sección crítica usando la instrucción TSL.

Instrucciones atómicas, implementadas en hardware.

Page 9: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

9

Sleep y Wakeup

Productor-Consumidor problema de condición de competencia.

Page 10: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

10

Semáforos

Variable entera con 2 operaciones atómicas: down: if 0, then go to sleep;

if >0, then decrementar valor

up: incrementar valor y dejar a un proceso dormido ejecutar un down

Implementado deshabilitando todas las interrupciones por el kernel.

Page 11: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

11

Semáforos

Problema del productor-consumidor usando semáforos.

Page 12: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

12

Mutexes

Implementación de mutex_lock y mutex_unlock

para sincronización threads en espacio de usuario

Page 13: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

13

Monitores (1)

Ejemplo de monitor – sólo un proceso puede estar dentro del monitor a al vez

Page 14: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

14

Monitors (2)

Ejemplo del problema del productor-consumidor con monitores Sólo un procedimiento del monitor puede estar activo a la vez El buffer tiene N entradasVariables de condition con wait and signal

Page 15: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

15

Pasaje de Mensajes

Problema del productor-consumidor con N mensajes

Page 16: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

16

Barreras

Uso de una barrera Procesos acercándose a la barrera Todos los procesos menos uno esperando en la barrera El último proceso llega, se deja pasar a todos

Page 17: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

17

Cena de los Filósofos

Filósofos comen/piensan Para comer necesitan 2

tenedores Toman un tenedor a la

vez

Page 18: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

18

Problema de los Filósofos

Page 19: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

19

Solución sin Deadlock para los Filósofos (1)

Page 20: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

20

Solución sin Deadlock para los Filósofos (2)

Page 21: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

21

Lectores y Escritores

Page 22: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

22

El Barbero Dormilón

Page 23: 1 Sincronización de Procesos 1. Formas de pasaje de información 2. Actividades críticas protejidas (p. ej. actualización de información compartida) 3.

23

Solución al Barbero Dormilón