Está en la página 1de 8

Bloqueo mutuo

En un medio ambiente de multiprogramacin, varios procesos pueden competir por un nmero finito de recursos. Los recursos de un sistema son particionados en varios tipos (espacio de memoria, ciclos de CPU, archivos, dispositivos de E/S), cada uno de los cuales consiste de un nmero de instancias idnticas. Si un proceso requiere una instancia de un tipo de recurso, la asignacin de cualquier instancia del tipo satisface el requerimiento. Cuando un proceso requiere un recurso que no est disponible pasa a un estado de espera. Puede suceder que un proceso en espera nunca pueda cambiar de estado porque el recurso que ha requerido esta retenido por otro proceso en espera, esta situacin es llamada bloqueo mutuo. Los bloqueos mutuos pueden describirse ms precisamente por medio de un grafo de asignacin de recursos. Hay una variedad de situaciones de bloqueo:
un proceso Pi requiere una instancia de un recurso tipo R1 retenida por otro proceso Pj que se encuentra en espera y bloqueado. dos procesos Pi y Pj retienen una instancia de un recurso tipo R1 y R2 respectivamente. Pi requiere una instancia del recurso tipo R2 y Pj una instancia del recurso tipo R1. en un grupo de procesos, cada uno est esperando un evento que puede ser causado solo por otro proceso del grupo.

Condiciones necesarias para el bloqueo mutuo


Exclusin mutua Retencin y espera No apropiacin Espera circular Estas condiciones deben darse simultneamente.

Sistemas Operativos y Redes -Sistemas Operativos - Bloqueo Mutuo

Mtodos para el manejo de bloqueos mutuos


Hay tres mtodos para tratar el problema del bloqueo Usar un protocolo para asegurar que el sistema nunca entrar en un estado de bloqueo.
Prevenir del bloqueo
asegura que al menos una de las condiciones para el bloqueo no se cumplir. establece restricciones sobre como pueden solicitarse los recursos.

Evitar el bloqueo
el S.O. necesita conocer con anticipacin que recursos requerir un proceso durante su tiempo de vida. con esa informacin, el S.O. puede decidir para cada requerimiento si el proceso debe esperar o no. la decisin se realiza en funcin de los recursos actualmente disponibles, los actualmente asignados a cada proceso, y los requerimientos y liberaciones futuras de cada proceso.

Permitir entrar a un estado de bloqueo y luego recuperarse.


Un algoritmo examina el estado del sistema para determinar si ha ocurrido un bloqueo. Otro algoritmo maneja la recuperacin desde el bloqueo.

Ignorar el problema.
Ante un bloqueo el sistema sufrir un deterioro en su perfomance Eventualmente el sistema se detendr y necesitar reinicio manual. Es usado en algunos sistemas operativos.

Sistemas Operativos y Redes -Sistemas Operativos - Bloqueo Mutuo

Prevencin del bloqueo


Asegurando que al menos una de las condiciones para bloqueo no se cumpla, podemos prevenir su ocurrencia. Exclusin mutua
Los recursos compartibles no estarn involucrados en un bloqueo dado que no requieren acceso exclusivo. En general no es posible prevenir los bloqueos relegando la condicin de exclusin mutua, dado que hay recursos que son intrnsecamente no compartibles. Garantizar que, siempre que un proceso requiere un recurso, no tiene otro retenido. Pueden usarse dos protocolos:
cada proceso debe requerir y recibir todos sus recursos antes de comenzar su ejecucin. cada proceso puede requerir algunos recursos y usarlos, pero cuando requiere otro recurso adicional, antes debe liberar los recursos que tiene asignados.

Retencin y espera

Estos protocolos producen baja utilizacin de los recursos. Puede ocasionar inanicin de algunos procesos. Alternativa 1:
Si un proceso que est reteniendo algunos recursos, requiere otro recurso que no se le puede asignar inmediatamente, entonces todos los recursos que tiene retenidos le son apropiados. Los recursos apropiados son agregados a la lista de recursos que el proceso est esperando. El proceso se reinicia solo cuando recupera sus viejos recursos junto con los nuevos que esta requiriendo. Si un proceso requiere recursos, primero chequear si estn disponibles. Si estn, entonces asignarlos. Si no estn, chequear si estn asignados a algn otro proceso que est esperando recursos adicionales. Si es as, apropiar los recursos deseados al proceso que est esperando y asignrselos al proceso que los requiere. Si los recursos requeridos no esta disponibles ni retenidos por otro proceso en espera, entonces el proceso que requiere debe esperar.

No apropiacin

Alternativa 2:

Sistemas Operativos y Redes -Sistemas Operativos - Bloqueo Mutuo

Prevencin del bloqueo


Espera circular
Imponer un orden a todos los tipos de recursos del sistema Cada proceso debe requerir recursos en un orden creciente de enumeracin. Implantacin:
asignar a cada tipo de recurso un nmero entero nico formalmente se define una funcin F: R N con R={R1,R2,...,Rm} la funcin F debe ser definida de acuerdo al orden de utilizacin normal de los recursos en el sistema.

Protocolo:
Alternativa 1: un proceso puede inicialmente requerir cualquier nmero de instancias de un tipo de recurso Ri despus el proceso puede requerir instancias de un recurso Rj si y solo si F(Rj) > F(Ri) Si son necesarias varias instancias de un mismo tipo de recurso, debe emitirse un nico requerimiento para todos ellos.

Alternativa 2: Cuando un proceso requiere una instancia de un recurso tipo Rj, debe haber liberado todos los recursos de tipo Ri tal que F(Ri) F(Rj)

Sistemas Operativos y Redes -Sistemas Operativos - Bloqueo Mutuo

Evitacin del bloqueo


Se requiere informacin adicional acerca de cmo van a ser requeridos los recursos. Con el conocimiento de la secuencia completa de requerimientos y liberaciones para cada proceso, el sistema, ante cada requerimiento, considera:
los recursos actualmente disponibles los recursos actualmente asignados a cada proceso los requerimientos y liberaciones futuras de cada proceso

para decidir si el requerimiento puede ser satisfecho, o el proceso debe esperar para evitar un posible bloqueo en el futuro. Los algoritmos de evitacin de bloqueo difieren en la cantidad y tipo de informacin que requieren. El modelo ms simple y til requiere que cada proceso declare el mximo nmero de recursos de cada tipo que puede necesitar. Con esta informacin el algoritmo asegura que el sistema nunca entrar en un estado de bloqueo. Un algoritmo de evitacin de bloqueo examina dinmicamente el estado de asignacin de recursos para asegurar de que nunca puede hacer una condicin de espera circular. El estado de asignacin de los recursos est definido por el nmero de recursos disponibles y asignados, y las mximas demandas de los procesos.

Sistemas Operativos y Redes -Sistemas Operativos - Bloqueo Mutuo

Evitacin del bloqueo


Estado seguro
Un sistema est en un estado seguro solo si existe una secuencia segura. Una secuencia de procesos <P1,P2,....,Pn> es segura si por cada Pi, los recursos que Pi puede an requerir, pueden ser satisfechos por los recursos actuales disponibles mas los recursos retenidos por todos los Pj con j<i Si la secuencia no existe, entonces se dice que el estado del sistema es inseguro. No todos los estados inseguros son bloqueos. Un estado inseguro puede conducir a un bloqueo. Mientras el estado sea seguro, el S.O. puede evitar estados inseguros.

Algoritmo del grafo de asignacin de recursos


Si para cada tipo de recurso existe solo una instancia, una variante del grafo de asignacin de recursos puede ser usada para la evitacin del bloqueo. La seguridad del sistema se chequea mediante un algoritmo que detecta ciclos en el grafo.

Algoritmo del banquero


El algoritmo del grafo de asignacin de recursos no es aplicable a un sistema de asignacin de recursos con mltiples instancias para cada tipo de recurso. En estos casos, para evitar el bloqueo se aplica un algoritmo conocido como el algoritmo del banquero. Cuando un proceso entra al sistema, debe declarar el mximo nmero de instancias de cada tipo de recurso que pueda necesitar. Cuando un proceso solicita un conjunto de recursos, el sistema debe determinar si la asignacin de esos recursos dejar al sistema en un estado seguro.

Sistemas Operativos y Redes -Sistemas Operativos - Bloqueo Mutuo

Deteccin del bloqueo


Si un sistema no emplea un algoritmo de prevencin o de evitacin del bloqueo, entonces puede ocurrir una situacin de bloqueo. Por ello, estos sistemas deben proveer: un algoritmo que examine el estado del sistema para determinar si ha ocurrido un bloqueo. un algoritmo para recuperarse del bloqueo Los esquemas de deteccin y recuperacin tienen un alto overhead.

Sistemas con nica instancia por cada tipo de recurso Para estos sistemas se puede definir un algoritmo de deteccin de bloqueo que usa una variante del grafo de asignacin de recursos llamado grafo wait-for. Existir un bloqueo en el sistema si el grafo wait-for contiene un ciclo. Para detectar bloqueos el sistema necesita mantener el grafo wait-for e invocar peridicamente un algoritmo que busca ciclos en el grafo. Sistemas con varias instancias por cada tipo de recurso En estos sistemas no es aplicable el esquema del grafo wait-for. Para estos sistemas se emplea un algoritmo similar al algoritmo del banquero.

Sistemas Operativos y Redes -Sistemas Operativos - Bloqueo Mutuo

Recuperacin del bloqueo


Cuando un algoritmo de deteccin determina que existe un bloqueo, el paso siguiente puede ser: informar al operador del bloqueo para que lo trate manualmente dejar que el sistema se recupere del bloqueo automticamente

Hay dos opciones para romper un bloqueo:


abortar uno o ms procesos para romper la espera circular apropiar algunos recursos de uno o ms procesos bloqueados

Terminacin de procesos Hay dos mtodos para eliminar bloqueos abortando procesos:
Abortar todos los procesos bloqueados Abortar un proceso por vez hasta eliminar el ciclo del bloqueo

Apropiacin de recursos Se trata de apropiar sucesivamente recursos de los procesos para darlos a otros procesos hasta romper el ciclo del bloqueo. Esto implica resolver tres cuestiones:
Seleccin de una vctima Rollback Inanicin

Sistemas Operativos y Redes -Sistemas Operativos - Bloqueo Mutuo