2.6 Interbloqueos
Imprime este documento

2.6.1 Principios de interbloqueo

Una situación de interbloqueo tiene lugar cuando ninguno de los procesos que compiten por los recursos del sistema o interactúan entre sí puede avanzar por carecer de algún recurso o esperar a que se produzca algún tipo de evento.

2.6.1.1 Recursos reutilizables

Un recurso reutilizable es aquel que puede ser utilizado por un proceso y no se agota por hacer uso del mismo, los procesos obtienen unidades de estos recursos y tras utilizarlas las liberan para que puedan ser reutilizadas por otros procesos. Como ejemplos de recursos reutilizables tenemos el procesador, la memoria principal y los dipositivos E/S.

2.6.1.2 Recursos consumibles

Un recurso consumible es aquel que puede ser producido y consumido. Normalmente no hay límite en el número de recursos consumibles de un tipo particular. Así, un proceso productor podrá liberar cualquier número de recursos consumibles. Las únicas restricciones en este sentido vendrán impuestas por la capacidad de almacenamiento temporal del sistema. Cuando un proceso consume un recurso de este tipo, la parte consumida queda excluida del sistema. Ejemplos típicos son: interrupciones, señales y mensajes.

A continuación veremos una secuencia que muestra la posibilidad de interbloqueo entre procesos que utilizan recursos consumibles.

A continuación veremos otra secuencia que produce interbloqueo entre procesos que utilizan recursos reutilizables.

2.6.1.3 Condiciones de interbloqueo

Deben darse tres condiciones para que se produzca interbloqueo:

  1. Que exista acceso a algún recurso en exclusión mutua.
  2. Que un proceso pueda retener los recursos que le han sido asignados mientras espera que se le asignen los que necesitan.
  3. Que ningún proceso pueda ser obligado a abandonar los recursos que retenga.

Estas tres condiciones de interbloqueo son condiciones necesarias, pero no suficientes, es decir, pueden producirse tales situaciones y que el sistema no evolucione a un interbloqueo.

Para que se produzca interbloqueo, debe darse una cuarta condición que consiste en la existencia de una cadena cerrada de procesos donde cada uno de los cuales retiene al menos un recurso de los que necesita el siguiente proceso de la cadena para continuar su ejecución. A esta condición se le denomina espera circular.

Fig. 2.6.4 Espera circular.

AnteriorSiguiente