Monday, November 29, 2010

BLOQUEO MUTUO

• En un medio ambiente de multiprogramación, varios procesos
pueden competir por un número 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 número de instancias
idénticas.
• Si un proceso requiere una instancia de un tipo de recurso, la
asignación 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 situación es llamada bloqueo mutuo.
• Los bloqueos mutuos pueden describirse más precisamente por
medio de un grafo de asignación 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:

• Exclusión mutua
• Retención y espera
• No apropiación
• Espera circular
Estas condiciones deben darse simultáneamente
grafo de asignacion de recursos
es un grafo que permite identificar posibles estados de bloqueos mutuos .
-Bloqueos mutuos se deven cumplir 4 condiciones:
Exclucion mutua :dos o mas procesos no pueden compartir el mismo recurso a la vez
Retencion de recursos y espera:Si un proceso toma un recurso y necesita otro adiccional no libera el primero de ellos.
No deve permitir la expropiacion de recursos ;Si un proceso esta utilisando un recurso el S.O no se lo puede quitar.
Existencia de espera sircular:Todos los procesos esperan por un recurso que estan ocupados por otro preoceso,de la Sgte forma P1-->R1-->P2-->P3-->...Rn-->P1
Grafo de asignacion de Recursos son las condiciones para generar BM
a)Exclucion Mutua:Si Px tiene un recurso ,Py no puede utilizarlo
b)Retener recurso y esperar:Px esta ocupando un Ry y Px quiere pedir otro ,sinn liberar el 1°
c)No esxprpiacion de recursos:Si Px tiene un recurso Ry,el S.O u otro proceso no puede quitarselo
d)Espera circular:P0-->R0-->P1
P1-->R1-->P2
Px-->Rx-->P0


Mecanismo para prevenir bloqueos mutuos

Hay tres métodos para tratar el problema del bloqueo:

1) Usar un protocolo para asegurar que el sistema nunca entrará en un estado de bloqueo.
2) Permitir entrar en un estado de bloqueo y luego recuperarse.
3) Ignorar el problema.

Hay mecanismos para prevenir los bloqueos mutuos, como lo es el esquema llamado esperar morir, en el cual un proceso más antiguo debe esperar a que un proceso más joven libere su recurso. O sea que mientras más viejo se hace el proceso, más tiende a esperar. Y el otro es el llamado esquema herir-esperar, en el cual un proceso más viejo, nunca espera a un más joven.

Detección del bloqueo.

Si un sistema no posee un algoritmo de prevención o de evitación de bloqueo, lo más probable es que ocurra el bloqueo en el. Por lo cual el sistema debe poseer un algoritmo que examine el estado del sistema para ver si ha ocurrid un bloqueo, y un algoritmo para recuperarse del bloqueo. Existen sistemas con única instancia por cada tipo de recurso, en el que se debe aplicar el esquema del grafo wait-for, como también están los sistemas con varias instancias por cada tipo de recurso, en los cuales se emplea un algoritmo similar al algoritmo del banquero.

Algoritmo del banquero.

Es una forma de evitar el interbloqueo. Es un acercamiento teórico para evitar los interbloqueos en la planificación de recursos. Requiere conocer con anticipación los recursos que serán utilizados por todos los procesos. Esto último generalmente no puede ser satisfecho en la práctica. Este algoritmo usualmente es explicado usando la analogía con el funcionamiento de un banco. Los clientes representan a los procesos, que tienen un crédito límite, y el dinero representa a los recursos. El banquero es el sistema operativo. Este algoritmo mantiene al sistema en un estado seguro para de esta manera evitar el interbloqueo.

Recuperación del bloqueo.

Cuando el algoritmo detecta un bloqueo, lo que hace es avisar al sistema que existe un bloqueo, o simplemente dejar que el sistema se recupere solo. Para romper un bloqueo el sistema aborta uno o más procesos hasta romper la espera circular, o apropiar algunos recursos de uno o más procesos bloqueados. Hay dos métodos para eliminar bloqueos abortando procesos, que son abortando todos los procesos bloqueados, o abortar de un ciclo a la vez hasta eliminar el ciclo del bloqueo. Y finalmente la apropiación de recursos se trata de apropiarse de recursos de los procesos para darlos a otros procesos hasta romper el ciclo del bloqueo. Esto implica resolver tres cuestiones: Selección de una víctima, Rollback e inanición.

1 comment:

  1. buena información sobre el bloqueo mutuo, aunque el término de espera circular podría verse mas explicativo en una imagen, pero en si se detalla el concepto y su funcionamento en este trabajo.

    ReplyDelete