next up previous contents
Next: Detectar y actuar Up: Concurrencia y Distribución Previous: Comunicación y sincronización

Bloqueo


Un bloqueo se produce cuando un proceso está esperando 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 accede con exito a r1 y P1 accede con exito a r0, ambos se quedan atrapados intendando tener acceso al otro recurso.

Cuatro condiciones se tienen que cumplir para que sea posible que se produzca 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 asignaciónes de recursos

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

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



Subsecciones
next up previous contents
Next: Detectar y actuar Up: Concurrencia y Distribución Previous: Comunicación y sincronización
© 2003, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática