1 / 23

Sincronización de Procesos

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. Condiciones de Competencia.

hei
Download Presentation

Sincronización de Procesos

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. 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. Regiones Críticas (2) 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 0. (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. 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. Semáforos 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. 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

More Related