La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sincronización de Procesos

Presentaciones similares


Presentación del tema: "Sincronización de Procesos"— Transcripción de la presentación:

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.

2 Condiciones de Competencia
Dos procesos quieren acceder a memoria compartida al mismo tiempo. El resultado final depende de cuando ejecuta cada uno.

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.

4 Exclusión mutua usando regiones críticas.

5 Exclusión Mutua Usando Espera Activa
1. Desabilitano las interrupciones. (Sólo el kernel) 2. Variables de Lock => race condition 3. Alternancia estricta usando spin locks – viola la condición 3. 4. Solución de Peterson 5. Test-and-set locks (TSL)

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

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.

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.

9 Productor-Consumidor problema de condición de competencia.
Sleep y Wakeup Productor-Consumidor problema de condición de competencia.

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.

11 Problema del productor-consumidor usando semáforos.

12 Mutexes Implementación de mutex_lock y mutex_unlock
para sincronización threads en espacio de usuario

13 Monitores (1) Ejemplo de monitor – sólo un proceso puede estar dentro del monitor a al vez

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 entradas Variables de condition con wait and signal

15 Problema del productor-consumidor con N mensajes
Pasaje de Mensajes Problema del productor-consumidor con N mensajes

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

17 Cena de los Filósofos Filósofos comen/piensan
Para comer necesitan 2 tenedores Toman un tenedor a la vez

18 Problema de los Filósofos

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

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

21 Lectores y Escritores

22 El Barbero Dormilón

23 Solución al Barbero Dormilón


Descargar ppt "Sincronización de Procesos"

Presentaciones similares


Anuncios Google