1. INTERBLOQUEOS
En un conjunto de varios procesos pueden
competir por un número finito de recursos.
Un procesos solicita recursos y, si los
recursos no están disponibles en ese
momento, el proceso pasa al estado de
espera; Es posible que algunas veces, un
proceso en espera no pueda nunca cambiar
de estado, porque los recursos que ha
solicitado estén ocupados por otro proceso
que a su vez esté esperando de otros
recursos. Cuando se produce una situación
como esta se dice que ha ocurrido un
interbloqueo.
2. Recursos Reutilizables
• Estos se pueden denominar como recursos
reutilizables y consumibles, la cual es aquel
proceso que puede ser usado con seguridad y no
agota con su uso.
• Un interbloqueo se produce si cada proceso
retiene un recurso y solicita el otro; esto implica
que al parecer fuese un error de programación
en lugar de un error de diseño del sistema
operativo; además si el recurso reutilizable tiene
que ver con las peticiones a memoria principal.
3. Un sistema consta de un número finito de recursos,
que se distribuyen entre una serie de procesos en
competición. Los recursos se dividen en varios
tipos, constando cada uno de ellos de un cierto
número de instancias. El espacio de memoria, los
ciclos de CPU, los archivos y dispositivos de E/S son
ejemplos de tipos de recursos.
En modo de operación normal, un proceso puede
emplear un recurso solo siguiendo esta secuencia:
Solicitud – Uso – Liberación
5. Condiciones Necesarias
Puede surgir si se dan necesaria mente las
cuatro condiciones:
Exclusión mutua
Retención y espera
Sin desalojo
Espera circular
6. Métodos Para Tratar lo Interbloqueos
Podemos abordar el problema de los inter bloqueos de
las siguientes tres formas.
Podemos emplear un protocolo para impedir o evitar los
interbloqueos, asegurando que el sistema nunca entre en
estado de interbloqueo.
Podemos permitir que el sistema entre en estado
interbloqueo, detectarlo y realizar una recuperación.
Podemos ignorar el problema y actuar como si nunca se
produjeran interbloqueos en el sistema.
La tercera solución es la que utilizan la mayoría de los
sistemas operativos.
7. Prevención de Interbloqueos
Para que se produzca un interbloqueo deben cumplirse las cuatro
condiciones. Asegurando que un de estas cuatro no se cumplan podemos
prevenir la aparición de interbloqueos.
Exclusión mutua.- Al menos un recurso debe estar en modo no compartido,
es decir, solo un procesos puede usarlo cada vez. Si otro proceso solicita el
recurso, el proceso solicitante tendrá que esperar hasta que el recurso sea
liberado.
Retención y espera.- Un proceso debe estar retenido al menos un recurso
y esperando para adquirir otro recurso adicionales que actualmente estén
retenidos por otro proceso.
Sin desalojo.- Los recursos no pueden ser desalojados, es decir un recurso
solo puede ser liberado voluntariamente por el proceso que le retiene,
después de que dicho proceso haya completado su tarea.
Espera circular.- debe existir un conjunto de procesos en espera, tal que este
proceso esté esperando a un recurso retenido por P1, P1 esté esperando a un
recurso retenido por P2, …,Pn-1 esté esperando a un recurso retenido por Pn,
y Pn esté esperando a un recurso retenido por P0.
8. Evasión de los Interbloqueos
Los algoritmos de prevención de interbloqueos impiden
los interbloqueos restringiendo el modo en que pueden
hacerse las solicitudes, estas restricciones aseguran que
al menos una de las condiciones necesarias para que
haya interbloqueo no se produzca y, por tanto no pueda
aparecer interbloqueos.
Sin embargo, esta técnica de prevención de
interbloqueos tiene algún posible efecto colateral, como
son una baja tasa de utilización de los dispositivos y un
menor rendimiento del sistema. Un posible método para
evitar los interbloqueos consiste en requerir información
adicional sobre cómo van a hacer solicitados los recursos.
9. Detección de Interbloqueos
Si un sistema no emplea ni algoritmos de
prevención ni de evasión de interbloqueos,
entonces puede producirse una situación de
interbloqueo en el sistema. En este caso el
sistema debe proporcionar:
Un algoritmo que Examine el estado del sistema
para determinar si se ha producido un
interbloqueo.
Un algoritmo para recuperarse del interbloqueo.
10. Recuperación de Interbloqueo
Cuando el algoritmo de detección determina que
existe un interbloqueo, tenemos barias
alternativas. Una posibilidad es informar al
operador de que se ha producido un interbloqueo y
dejar que lo trate de forma manual. Otra forma es
dejar que el sistema sea el que haga la
recuperación del interbloqueo de forma
automática. Existen dos opciones para romper un
interbloqueo una de ellas consiste en interrumpir
uno o más procesos para romper la cadena de
espera circular, La otra consiste en desalojar
recursos de uno o más de los procesos bloqueados.