Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SIstemas Operativos 7
SIstemas Operativos 7
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.
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