Está en la página 1de 4

DESARROLLO

El interbloqueo es un problema potencial en cualquier sistema operativo. Ocurre cuando todos los
miembros de un conjunto de procesos se bloquean en espera de un evento que sólo otros miembros
del conjunto pueden ocasionar. Esta situación hace que todos los procesos esperen para siempre.
Deben presentarse ciertas condiciones de gestión para que sea posible un interbloqueo:
1. Exclusión mutua. Sólo un proceso puede utilizar un recurso en cada momento ningún proceso
puede acceder a una unidad de un recurso que se ha asignado a otro proceso.
2. Retención y espera. Un proceso puede mantener los recursos asignados mientras espera la
asignación de otros recursos.
3. Sin expropiación. No se puede forzar la expropiación de un recurso a un proceso que lo
posee.
4. Espera circular. Existe una lista cerrada de procesos, de tal manera que cada proceso posee
al menos un recurso necesitado por el siguiente proceso de la lista.
Las tres primeras condiciones son necesarias pero no suficientes para que exista un interbloqueo. La
cuarta condición es, realmente, una consecuencia potencial de las tres primeras. Es decir, si se
cumplen las tres primeras condiciones, se puede producir una secuencia de eventos que conduzca a
una espera circular irresoluble. La espera circular irresoluble es de hecho la definición del
interbloqueo.

¿Cómo los bloqueos ayudan al sistema operativo para su buen funcionamiento?


No lo hacen. Es el bloqueo permanente de un conjunto de procesos o hilos de ejecución en un
sistema concurrente que compiten por recursos del sistema o bien se comunican entre ellos. A
diferencia de otros problemas de concurrencia de procesos, no existe una solución general para los
interbloqueos. La secuencia de eventos necesarios para utilizar un recurso es la siguiente:
1. Solicitar el recurso.
2. Utilizar el recurso.
3. Liberar el recurso.

Si el recurso no está disponible cuando se lo solicita:


 El proceso solicitante debe esperar.
 En algunos S.O. el proceso se bloquea automáticamente y se despierta cuando dicho recurso
está disponible.
 En otros S.O. la solicitud falla y el proceso debe esperar para luego intentar nuevamente.

Enlista algunos ejemplos de interbloqueo, ajenos al ámbito de la informática.


 Tráfico de vehículos: Uno de los objetivos de las señales de trafico y de las normas de
circulación es resolver los posibles interbloqueos entre los vehículos.
 El arco y la flecha: Dos niños que intentan jugar al arco y flecha, uno toma el arco, el otro la
flecha. Ninguno puede jugar hasta que alguno libere lo que tomó.
 El problema de los filósofos comensales: Debido a su falta de habilidad manual, cada
filósofo necesita dos tenedores para comer los espaguetis.una mesa redonda en la que está
colocado un gran cuenco para servir espaguetis, cinco platos, uno para cada filósofo, y cinco
tenedores. Un filósofo que quiere comer se dirige a su sitio asignado en la mesa y, utilizando
los dos tenedores situados a cada lado del plato, toma y come algunos espaguetis. El
problema: diseñar un ritual (algoritmo) que permita a los filósofos comer. El algoritmo debe
satisfacer la exclusión mutua (no puede haber dos filósofos que puedan utilizar el mismo
tenedor a la vez) evitando el interbloqueo y la inanición.

Imagina un sistema con un único tipo de recurso con N unidades disponibles, donde se
ejecutan P procesos que utilizan el mismo número de unidades del recurso. ¿Cuál es el
número máximo de unidades que puede solicitar cada proceso de manera que se asegure que
no puede haber interbloqueo?
Espera circular.
Dependencia: Si un proceso P1 está suspendido en espera de un recurso exclusivo que está
asignado a otro proceso P2, entonces decimos que P1 depende de P2 (P1 <= P2).
Existe una cadena circular de procesos en espera de un recurso, si existe una cadena de
dependencias entre procesos de la forma
P1 <= P2 <= P3 <= ... <= Pn <= P1.

2
Considera un sistema con dos tipos de recursos, con tres unidades disponibles para cada
uno de ellos. En este sistema se ejecutan procesos de forma tal que cada uno de ellos
necesita una unidad de cada tipo de recurso. ¿Cuál es el máximo de procesos que puede
existir de forma que se asegure que no puede haber interbloqueo?
Se tienen 2 tipos de recursos, con 3 unidades de cada uno, es decir: R1 (X1, X2, X3) R2 (Y1, Y2, Y3)
Y cada proceso que se ejecuta necesita una 'X' y 'Y', es decir: P1 (X1 y Y1) P2 (X2 y Y2) P3 (X3 y
Y3) Se concluye que: Serían posibles solo 3 procesos, para que no haya interbloqueo en el sistema.

CONCLUSION

El interbloqueo es el bloqueo de un conjunto de procesos que o bien compiten por recursos del
sistema o se comunican entre sí. El bloqueo es permanente a menos que el sistema operativo tome
acciones correctivas, como abortar uno o más procesos, o forzar que la ejecución de uno o más
procesos retroceda. El interbloqueo puede involucrar a recursos reutilizables o consumibles. Un
recurso reutilizable es aquél que no se destruye cuando se usa, como un canal de E/S o una región
de memoria. Un recurso consumible es aquél que se destruye cuando lo adquiere un proceso;
algunos ejemplos son los mensajes y la información almacenada en buffers de E/S. Hay tres
estrategias generales para tratar con los interbloqueos: prevención, detección y predicción. La
prevención del interbloqueo garantiza que no se produce el interbloqueo asegurándose de que no se
cumple una de las condiciones necesarias para el interbloqueo. La detección del interbloqueo es
necesaria si el sistema operativo está siempre dispuesto a conceder peticiones de recursos;
periódicamente, el sistema operativo debe comprobar si hay interbloqueo y tomar las acciones
pertinentes para romperlo. La predicción del interbloqueo implica el análisis de cada nueva petición
de un recurso para determinar si podría conducir a un interbloqueo, concediéndola sólo si no es
posible el interbloqueo

3
4

También podría gustarte