Está en la página 1de 10

Interbloqueos

Administracin de procesos
Necesidad

sincronizacin de procesos creados por diferentes equipos de programadores, est a


cargo del sistema operativo

Definiciones
Interbloqueo
Se dice que dos o ms procesos estn interbloqueados, cuando estn suspendidos en espera
de un evento que slo puede ser activado por uno de los procesos bloqueados, y por lo tanto
dicho evento nunca suceder

Postergacin indefinida o Inanicin (Starving)


Se dice que uno o ms procesos estn en postergacin indefinida cuando la poltica de
planificacin del sistema permite que un proceso quede en espera de un evento por un
tiempo indefinido. Esto puede suceder, por ejemplo, cuando la asignacin de recursos se
realiza por prioridad. De este modo un proceso de baja prioridad estar suspendido mientras
existan otros procesos de mayor prioridad.
Envejecimiento: aumentar la prioridad de los procesos conforme pasa el tiempo

Clasificacin de recursos
Para el estudio del interbloqueo, los recursos se pueden clasificar en:

Compartido/exclusivos: Se dice que un recursos es compartido si puede ser


utilizado por ms de un proceso al mismo tiempo. Son exclusivos los que pueden
ser utilizados slo por un proceso a la vez
Apropiativos/inapropiativos: Son apropiativos los recursos asignados a un proceso,
que pueden ser desasignados del proceso, por al sistema para asignarlos a otro
proceso.

Los recursos involucrados en los interbloqueos son los exclusivos e inapropiativos

Condiciones necesarias para el


interbloqueo
Coffman, Elphuck y Shoshani, establecieron cuatro condiciones, necesarias y suficientes,
para que se d un interbloqueo:

Exclusin mutua
Si dos procesos solicitan un recurso exclusivo, uno de los dos quedar suspendido hasta que
el favorecido libere el recurso.

Contencin (retencin y espera)


Si un proceso necesita ms de un recurso para realizar su trabajo, conservar en su poder
los recursos exclusivos ya asignados, mientras espera por otro recurso adicional.

Inapropiatividad
Los recursos asignados a un proceso, slo pueden ser liberados por el proceso mismo y no
pueden ser desasignados por el sistema, cuando otro proceso los necesite.

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).
Espera circular: 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
Ejemplos:
Asignacin de recursos sin ciclos

Asignacin de recursos con espera circular e interbloqueados

Formas de
enfrentar los interbloqueos
Existen varias polticas y estrategias que el sistema operativo puede tomas, para tratar con
los interbloqueos:

Indiferencia:Problema del usuario y del programador, lograr que no se d el


interbloqueo.
Prevencin/Estrategias de Havender:Consisten en condicionar el sistema con una
serie de restricciones a los programadores, para que no se den al menos una de las
condiciones del interbloqueo, por lo que ste nunca suceder.
Evitacin o prediccin/Algoritmo de Dijkstra: Esta estrategia consiste en dejar
que las condiciones para el interbloqueo se puedan dar, pero en el momento de
asignar recursos, y se detecte que puede ocurrir un interbloqueo, deniega la
asignacin del recurso que puede desencadenar el interbloqueo.
Deteccin y recuperacin: En esta poltica, el sistema deja que suceda el
interbloqueo, pero se implementan procesos encargados de revisar el estado de
asignacin de los procesos, para detectar los interbloqueo. Una vez detectado, se
pueden implementar polticas de recuperacin de interbloqueo, que bsicamente
consisten en matar procesos.

Indiferencia (algoritmo del avestruz)

Simple y eficiente, dado que el sistema operativo no gasta procesador ni recursos en


el manejo del interbloqueo. Usualmente es la poltica preferida en los sistemas
actuales
El costo esperado de un interbloqueo suele ser muy bajo
o Costo esperado = Probabilidad (desastre) * Costo (desastre)
Slo se deben proporcionar herramientas para revisar el estado de los procesos
complica el trabajo del operador

Prevencin (Estrategias de Havender/Prevencin


esttica)
Se pueden adoptar 4? posibles estrategias de prevencin del interbloqueo, una para cada
condicin. Ya que para se d un interbloqueo son necesarias las cuatro, con negar una de
ellas, se niega la posibilidad del interbloqueo:

Negacin de la exclusividad

Slo se aplica a recursos compartidos, es muy difcil poder aplicarlo a todos los
recursos, dado que hay recursos que son inherentemente de uso no compartido.
Uso de spoolers: dar un API concurrente (compartido) a los procesos para accesar
recursos. La estrategia bsica es que un servicio del sistema (daemon) proporciona
un API, y ese servicio es el nico que accesa el recurso compartido, exclusivo. Ej:
una impresa es un recurso exclusivo e inapropiativo, pero con el uso de un spooler
se convierte en un recurso compartido.
Test & Get: un API especial que permite revisar primero si el recurso est
disponible, y pedirlo, o retornar un cdigo de error que indica que no est
disponible. Requiere que los procesos hagan uso de este API.
Timeout: Especificar en el API, para cada peticin de recursos un tiempo mximo
de espera, despus del cual se retorna un cdigo de error.

Negacin de la contencin

Estrategia 1: El proceso pide al sistema TODOS los recursos a necesitar antes de


iniciar su proceso (todo o nada). No siempre se sabe cuntos recursos se utilizarn.
Estrategia 2: Tambin puede establecerse que un procesos puede pedir recursos
cuando no tiene recursos asignados
No siempre se conoce la cantidad de recursos que se necesitar, por lo que lo que el
operador debe configurar, por prueba y error, lograr que los procesos funcionen
adecuadamente
Obliga a optimizar los programas por medio de divisin. El programador de
modularizar extremadamente bien los procesos para utilizar los recursos por fases,
de forma que para cada fase, se piden los recursos y se liberan, antes de la siguiente
fase
La utilizacin de recursos resulta muy pobre
Puede resultar una postergacin indefinida de un proceso que requiera muchos
recursos

Negacin de la inapropiatividad

Si un proceso que tiene recursos asignados, pide un nuevo recurso que no est
disponible, deber liberar los recursos asignados y pedirlos posteriormente.
Slo se aplica a recursos apropiativos y recursos que se pueden almacenar su estado
para reasignarlo, o que puedan hacerles rollback

puede llevar a que la ejecucin de un proceso se prolongue indefinidamente, debido


a que nadie puede garantizar que termine en un tiempo determinado.
Pobre utilizacin del tiempo de procesamiento

Negacin de la espera circular

Se impone un orden a los recursos


Cada proceso slo puede pedir los recursos en orden ascendente (o descendente)

Tiempo\requerimientos P1
P2
P3
t1
R1 (ok)
t2
R2 (ok)
t3
R3 (ok)
t4
R2 (*)
t5
R3 (*)
t6
R1 (*)
P1 => P2 => P3 => P1
Tiempo\requerimientos P1
P2
P3
t1
R1 (ok)
t2
R2 (ok)
t3
R1 (*)
t4
R2 (*)
t5
R3 (ok)
..
ti
FINALIZA
ti
DESPIERTA
Tj
FINALIZA
DESPIERTA
Tj+1
R3 (ok)
Tn
FINALIZA
DEMOSTRACIN:
P0 => P1 => P2 => => Pn => P0
Para que haya una dependencia de Pi A Pj, significa que Pi tiene asignados recursos <= k, y
est pidiendo un Rk+1, el cual est asignado a Pj, lo que significa que Pj tiene asignados
recursos >= k+1, por lo tanto Pn => P0

En general las tcnicas de prevencin, aunque logran su objetivo de eliminar los


interbloqueos, provocan una pobre utilizacin de los recursos, incluyendo el procesador.
Tambin el algunos casos, provocan postergacin indefinida.

Evitacin o Prediccin ( Estrategias de Dijkstra,


Habermann)
Con la evitacin no se tienen reglas estticas a los procesos, sino que el sistema operativo
analiza cada peticin de recursos y determina si el sistema quedar en un estado estable o
inestable, en este ltimo caso, se deniega la peticin, posponindola temporalmente.

Conceptos
La evitacin se basa en los siguientes conceptos:

Estado de asignacin de recursos:Nmero de recursos asignados, disponibles y


mximo de recursos posibles por proceso.
Secuencia segura:Secuencia de finalizacin de procesos, tal que todos los procesos
puedan finalizar exitosamente, iniciando en un determinado estado de asignacin de
recursos
Estado seguro de asignacin de recursos:Estado de asignacin de recursos, donde
existe al menos una secuencia segura.
Estado inseguro de asignacin de recursos: No existe ninguna secuencia segura.
Obsrvese, que aunque un estado inseguro no implica que exista interbloqueo,
talvez una secuencia determinada de eventos lleve a uno.

Algoritmo del banquero (Dijkstra, Habermann)


En este algoritmo, de evitacin en general procede as:

Necesita que cada proceso declare el mximo nmero de recursos a utilizar


En cada requerimiento, determina si el asignar los recursos pedidos deja un estado
inseguro de asignacin de recursos, entonces se pospone el requerimiento. De lo
contrario se asignan los recursos solicitados.

Procedimiento de asignacin
Cuando un proceso solicita recursos, el sistema operativo procede as:
1. Determinar si hay disponibles
2. Determinar que no exceda su mximo declarado
3. Determinar que, si se concede la peticin, el sistema quede en estado seguro
Si no se cumple cualquiera de estas condiciones, el proceso queda suspendido hasta que
exista una liberacin de recursos.

Ejemplo
proceso\recurso R1 (7) R2(7) R3(7)
P1
5
3
1
P2
3
2
3
Maximos
P3
2
3
1
P4
5
0
3
P1
3
3
1
P2
2
2
2
Asignados
P3
0
1
1
P4
0
0
1
P1
2
0
0
P2
1
0
1
Necesarios
P3
2
2
0
P4
5
0
2
Disponibles
2
1
2
Sobre este estado de asignacin de recursos (qu es estable ?) supongamos las siguiente
peticiones de recursos:

P2[1,0,1]:El sistema queda en un estado seguro


P3[2,0,0]:El sistema queda en un estado inseguro

Desventajas

necesita el conocimiento del mximo por recurso que usar cada proceso
implica un retardo en cada asignacin de recursos, lo que puede degradar el sistema
si se manejan muchos recursos y/o procesos
Se requiere una garanta de devolucin: c/proceso liberar los recursos asignados.
(suponga que despus de hacer la primera asignacin de recursos, el proceso P2 no
termina, entonces ninguno de los procesos podra terminar, sin necesidad de que
haya interbloqueo.

Deteccin y recuperacin

El sistema no impone ninguna clase de reglas para prevenir o evitar el interbloqueo


Se puede tener un proceso de fondo o de activacin manual que analice las
estructuras del sistema operativo y determine si existe o no un interbloqueo.
Una vez detectado el interbloqueo se procede a la recuperacin, que puede ser
automtica o manual. Bsicamente consiste en matar un proceso

Podra utilizar si no es muy costoso que haya un interbloqueo (el costo es menor que el
costo de implementar una de las otras polticas de interbloqueo.

Normalmente sera utilizado como herramienta de diagnstico y recuperacin

Deteccin por reduccin de grafos de asignacin


Deteccin por ciclos de espera
La tcnica ms sencilla para detectar un interbloqueo es deducir un grafo dirigido de
dependencias entre proceso por medio de las colas de espera en cada recurso y determinar
si existen un ciclo en dicho proceso.
Por ejemplo, en la siguiente grfica, al lado izquierdo, se tiene un grafo del estado actual de
asignacin de recursos y a la derecha vemos el grafo de espera entre procesos. Como se
puede apreciar, existe un ciclo en en grafo de espera, por lo tanto existe un interbloqueo.

Condiciones necesarias para la deteccin


1.

Conocer los procesos: acceso al PCB

2.

Conocer los recursos: acceso a la tabla de recursos del sistema

3. Conocer la asignacin: debemos poder saber qu recursos est asignado a cada


proceso
4. Conocer la espera: debemos poder saber en que recursos est esperando (suspendido)
un proceso

Recuperacin

Una vez que se detecta un interbloqueo, corresponde la decisin sobre la recuperacin del
sistema sobre ese interbloqueo, que bsicamente se trata de matar un proceso y recuperar
sus recursos.
Esta recuperacin puede ser manual o automtica. La recuperacin automtica es un tema
difcil, ya que no se pueden establecer, fcilmente, condiciones determinsticas para saber
cul es el proceso ms adecuado de eliminar. Existen algunas posibilidades:

El proceso con ms recursos: se libera la mayor cantidad cantidad de recursos, lo


que permite continuar a la mayor cantidad de procesos. Se deshace el "nudo"
principal. Sin embargo tiene la desventaja que normalmente ser el proceso ms
importante, lo que implica el mayor dao, o el mayor tiempo de repeticin.
El proceso con menos recursos: se busca el menor dao, pero puede ser que pocos
procesos puedan continuar.
El proceso que est involucrado en ms ciclos o interbloqueos: se deshace el mayor
nmero de interbloqueos.

Sin embargo, hay que tomar en cuenta un criterio subjetivo: la importancia del proceso, lo
cual no est dado ni por la cantidad de recursos que tiene asignados el proceso ni el nmero
de interbloqueos en que est involucrado. Lo cul hace de la recuperacin manual, una
forma muy recomendable, siempre y cuando se cuente con un operador entrenado en el
funcionamiento de los procesos del usuario.

También podría gustarte