2. Bloqueo Mutuo o Interbloqueo
Para que se de una situación de interbloqueo o bloqueo
mutuo se deben de cumplir de forma simultánea las
cuatro condiciones siguientes:
Exclusión mutua. Los procesos exigen un control
exclusivo de los recursos que necesitan.
Ocupar y esperar. Los procesos retienen los
recursos que han adquirido mientras esperan para
adquirir otros.
No apropiación. Los recursos no pueden arrebatarse
a los procesos hasta que terminen su utilización.
Espera circular. Cadena circular de procesos en la
que cada uno retiene al menos un recurso que se
solicita por el siguiente.
2
3. Métodos
Se dispone de varias formas para tratar el problema del
interbloqueo o bloqueo mutuo:
Evitar que se llegue al interbloqueo.
Prevención de los interbloqueos
Evitación de los interbloqueos
Permitir que ocurra y recuperarse de él.
Detección del interbloqueo
Recuperación del interbloqueo
3
4. Detección del Interbloqueo
Se utiliza en aquellos sistemas en los que se permite
que se produzca el interbloqueo, comprobando
periódicamente si se ha producido. En los Sistemas
deTiempo Real no debe llegarse a una situación de
Bloqueo Mutuo.
Inconvenientes:
Sobrecarga del SO para mantener la información
necesaria y el algoritmo de detección.
Posibles pérdidas en el intento de recuperar el
sistema.
4
5. Detección del Interbloqueo
Grafos de asignación de recursos
Se suele utilizar un grafo dirigido que indica las asignaciones de los
recursos a los procesos y las peticiones que éstos realizan. Cada arco
conecta el nodo de un proceso con el nodo de un recurso.
Si sólo hay un elemento por cada tipo de recurso, la existencia de un
ciclo es una condición necesaria y suficiente para que haya un
interbloqueo.
Si cada tipo de recurso tiene varios elementos, la condición de
existencia de un ciclo es necesaria pero no suficiente para asegurar
que existe un interbloqueo.
Una condición suficiente es la existencia de un ciclo en el que no hay
ningún camino que salga de alguno de los nodos que lo forman que a
su vez no sea ciclo.
5
7. Detección del Interbloqueo
Método de reducción del grafo
Se determinan los procesos a los que se les pueden
conceder todos los recursos que tienen solicitados y se
quitan los arcos.
Si el grafo puede reducirse para todos los procesos, no
existe interbloqueo.
En caso contrario, los procesos irreducibles constituyen
el conjunto de procesos interbloqueados.
7
9. Recuperación del Interbloqueo
Se tienen dos opciones básicas para la recuperación del bloqueo mutuo:
Reiniciar uno o más de los procesos bloqueados. Factores a tener
en cuenta con el fin de elegir aquellos procesos cuya reiniciación
resulte menos traumática:
Prioridad del proceso (Se reinicia el de menor prioridad)
Tiempo de procesamiento utilizado y tiempo
restante (Se reinicia proceso de mayor tiempo restante)
Tipo y número de recursos que posee (Se reinicia
proceso que tenga mas recursos asignados)
Número de recursos que necesita para finalizar.
(Se reinicia proceso que necesite mas recursos)
Número de procesos que se verían involucrados
con su reiniciación (Se reinicia aquel que afecte a menos
procesos)
9
10. Recuperación del Interbloqueo
Expropiar los recursos de algunos de los procesos
bloqueados de forma sucesiva hasta que se
consiga salir del interbloqueo, siguiendo criterios
similares a los aplicados en la reiniciación de
procesos.
Hay que tener en cuenta, además, el estado al
que se pasan los procesos expropiados.
La solución sería volverlos a un estado anterior
en el que el bloqueo se rompa.
Para que ésto sea posible, se necesita que el
sistema disponga de una utilidad que registre los
estados de los distintos procesos en tiempo de
ejecución, con la consiguiente carga adicional
sobre el SO.
10
11. Evitación del Interbloqueo
Impone condiciones menos restrictivas que el método de
la prevención. En el momento de asignar un recurso, si
se prevé la posibilidad de que se produzca un bloqueo,
el recurso no se concede.
El algoritmo del banquero de Dijkstra asegura que el
número de recursos asignados a todos los procesos
nunca puede exceder del número de recursos del
sistema.
Además, nunca se pueden asignar recursos de modo
que no queden suficientes para satisfacer las
necesidades de todos los procesos.
11
12. Evitación del Interbloqueo
Cuando se crean los procesos, éstos declaran que en
cualquier instante no podrán necesitar más de x
recursos. Se construye una tabla para llevar la cuenta
de los recursos disponibles y de los necesitados.
Proceso
Usados
P1
P2
P3
2
1
3
Total disponibles
Posibles
necesarios
4 (de 10)
3
5
1
Máximos
necesarios
5
6
4
12
13. Evitación del Interbloqueo
Un estado se considera seguro si todos los procesos que
ya tienen concedidos recursos tienen la posibilidad de ser
completados en algún orden determinado, incluso con la
posibilidad de que cada uno de los procesos utilizase el
máximo de los recursos declarados.
13
14. Evitación del Interbloqueo
En el algoritmo del banquero:
Se permiten las condiciones de exclusión mutua,
retención y espera y de no existencia de expropiación.
Los procesos solicitan el uso exclusivo de los recursos
que necesitan. Mientras esperan alguno, se les
permite mantener los recursos de que disponen sin que
se les puedan expropiar.
Los procesos piden los recursos al SO de uno en uno.
El sistema puede conceder o rechazar cada petición.
Una petición que no conduce a un estado seguro se
rechaza y cada petición que conduce a un estado
seguro se concede.
14
15. Evitación del Interbloqueo
Inconvenientes:
La gestión de los recursos suele ser conservadora, ya
que los estados inseguros constituyen un conjunto
grande de estados dentro del cual se encuentra el
subconjunto de los estados que realmente producen
interbloqueos.
El algoritmo requiere que los procesos conozcan por
adelantado sus necesidades máximas.
15
16. Prevención del Interbloqueo
Basta con evitar una de las cuatro condiciones necesarias para
ocurrencia del bloqueo mutuo.
No obstante, la condición de exclusión mutua se debe mantener.
Prevención de la Retención y Espera
Para evitarla, basta con garantizar que un proceso que posee
un recurso no pueda pedir otro, haciendo que la petición de
todos los recursos que necesita un proceso se realice bajo la
premisa de todos o ninguno.
Problemas:
Pobre uso de los recursos, ya que puede haber recursos
retenidos que no estén en uso y otros que, aunque no estén
retenidos, no se puedan asignar por ser requeridos junto con
otros que sí lo están.
Puede resultar difícil que un conjunto de recursos se
encuentren disponibles a la vez, lo que puede producir una
espera indefinida del proceso que los necesita.
16
17. Prevención del Interbloqueo
Prevención de la No existencia de la expropiación
Se puede permitir la expropiación mediante dos estrategias:
Si un proceso que tiene uno o más recursos solicita otro que
esté en uso, debe esperar y permite que los recursos de que
dispone se puedan expropiar. El proceso libera, de forma
implícita, los recursos de que dispone y se añaden a la lista
de recursos disponibles y, a la vez, a la lista de recursos
solicitados por éste. El proceso sólo se puede volver a
activar cuando pueda ganar el acceso a todos los recursos
que necesita.
Si un proceso solicita algunos recursos que están asignados
a otros procesos, se mira si éstos están esperando, en cuyo
caso se expropian. Si hay algún recurso que no está libre o
que no puede ser expropiado, el proceso se suspende y no
puede volver a ejecución hasta que no disponga de todos
los recursos.
Inconveniente: Puede llevar a que haya procesos que se vean
relegados durante un tiempo excesivamente grande.
17
18. Prevención del Interbloqueo
Prevención de la Espera Circular
Para evitarla, se ordenan los recursos asignándoles a cada tipo
de ellos un número entero y se impone que se pidan en orden
ascendente.
Además, las peticiones de todos los recursos perteneciente a un
mismo tipo deben realizarse con una única petición y no
incrementalmente.
Desventaja:
Los recursos no se piden en el orden que se necesitan, sino
en el que se ha establecido.
Los procesos pueden verse obligados a pedir los recursos
antes de necesitarlos , acaparándolos innecesariamente.
18
19. Estrategias Combinadas
En algunos sistemas de tiempo real el interbloqueo
puede tener resultados inaceptables, por lo que no se
puede permitir que se presente dicha situación.
En otros sistemas se rechaza el interbloqueo, aunque
fuera aceptable, por el costo en tiempo y medios que
conlleva la recuperación.
Se puede obtener una mayor eficacia combinando los
distintos métodos para aprovechar sus ventajas:
Agrupar los recursos del sistema en clases disjuntas.
Para evitar el interbloqueo entre las clases, se
ordenan para evitar la espera circular.
Usar en cada clase el método más apropiado de
evitar en ella el interbloqueo
19
20. Ejemplos Generales
Clase de recurso
Espacio de
intercambio
Métodos más adecuado
*
Motivo
*
Prevención del interbloqueo
por el método usado para
evitar la condición de
retención y espera.
Evitación del interbloqueo.
Se conoce de antemano la
capacidad máxima de
almacenamiento necesitada por
cada proceso.
Recursos de los
procesos
(impresoras,
ficheros, discos,
cintas)
*
*
Evitación de interbloqueos.
Ordenación de recursos.
Los procesos declaran los
recursos de una determinada
clase que van a necesitar.
Memoria principal
*
Prevención mediante
expropiación
El proceso expropiado se pasa a
memoria secundaria.
Recursos internos
(canales E/S, etc.)
*
Prevención por ordenación
de recursos
No suele ser necesario realizar
ninguna elección en tiempo de
ejecución entre las peticiones
pendientes.
20