next up previous contents
Next: Detectar y actuar Up: 92 Concurrencia y Distribución Previous: Problema del productor y   Índice General

Bloqueo


Un bloqueo se produce cuando un proceso está esperando a algo que nunca se cumple.

Ejemplo:

Cuando dos procesos P0 y P1 quieren tener acceso simultaneamente a dos recursos r0 y r1, es posible que se produzca un bloqueo de ambos procesos. Si P0 aloca con exito r1 y P1 aloca con exito r0, ambos se quedan atrapados intendando tener acceso al otro recurso.

Cuatro condiciones se tienen que cumplir para que sea posible que se produce un bloqueo entre procesos:

  1. los procesos tienen que compartir recursos con exclusión mutua
  2. los procesos quieren acceder a un recurso más mientras ya tienen acceso exclusivo a otro
  3. los recursos no permiten ser usados por más de un proceso al mismo tiempo
  4. existe una cadena circular entre peticiones de procesos y alocación de recursos

Un problema adicional con los bloqueos es que es posible que el programa siga funcionando correcto según la definición, es decir, el resultado obtenido es el resultado deseado, aún unos de sus procesos están bloqueados durante la ejecución.

Existen algunas técnicas que se puede usar para que no se produzcan bloqueos:



Subsecciones
next up previous contents
Next: Detectar y actuar Up: 92 Concurrencia y Distribución Previous: Problema del productor y   Índice General
© 2001, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática