You are on page 1of 2

CÓMO EVITAR INTERBLOQUEOS (en esta analogía, los clientes son procesos, las unidades son, por ejemplo,

ogía, los clientes son procesos, las unidades son, por ejemplo, unidades
Con la evitación no se tienen reglas estáticas a los procesos, sino que el sistema de cinta, y el banquero es el sistema operativo).
operativo analiza cada petición de recursos y determina si el sistema quedará en un
estado estable o inestable, en este último caso, se deniega la petición,
posponiéndola temporalmente.

Conceptos
La evitación se basa en los siguientes conceptos:
Estado de asignación de recursos: Número de recursos asignados, disponibles y
máximo de recursos posibles por proceso.
Secuencia segura: Secuencia de finalización de procesos, tal que todos los procesos
puedan finalizar exitosamente, iniciando en un determinado estado de asignación de
recursos
Estado seguro de asignación de recursos: Estado de asignación de recursos, donde
existe al menos una secuencia segura. Los clientes hacen sus respectivas labores, pidiendo préstamos de vez en cuando (es
Estado inseguro de asignación de recursos: No existe ninguna secuencia segura. decir, solicitando recursos).
Obsérvese, que aunque un estado inseguro no implica que exista interbloqueo, talvez Este estado es seguro debido a que, con dos unidades restantes, el banquero puede
una secuencia determinada de eventos lleve a uno. retrasar cualquier petición excepto la de C, con lo cual deja que Ctermine y libere
Estados seguros e inseguros todos sus cuatro recursos. Con cuatro unidades a la mano, el banquero puede dejar
Se dice que un estado es seguro si hay cierto orden de programación en el que se que D o B tengan las unidades necesarias, y así en lo sucesivo. Considere lo que
puede ejecutar cada proceso hasta completarse, incluso aunque todos ellos ocurriría si se otorgara una petición de B por una o más unidades en la (b).
solicitaran de manera repentina su número máximo de recursos de inmediato. Tendríamos la situación de la (c), que es insegura. Si todos los clientes pidieran de
Un estado inseguro no es un estado en interbloqueo, la diferencia entre un estado manera repentina sus préstamos máximos, el banquero no podría satisfacer a
seguro y uno inseguro es que, desde un estado seguro, el sistema ninguno de ellos, y tendríamos un interbloqueo.
puedegarantizar que todos los procesos terminarán; desde un estado inseguro, no
se puede dar esa garantía. El algoritmo del banquero considera cada petición a medida que va ocurriendo, y
analiza si al otorgarla se produce un estado seguro. Si es así, se otorga la petición; en
El algoritmo del banquero para un solo recurso caso contrario, se pospone hasta más tarde. Para ver si un estado es seguro, el
Dijkstra (1965) ideó un algoritmo de programación que puede evitar interbloqueos; banquero comprueba si tiene los suficientes recursos para satisfacer a algún cliente.
este algoritmo se conoce como el algoritmo del banquero y es una extensión del
algoritmo de detección de interbloqueos. El algoritmo del banquero para varios recursos
Se modela de la forma en que un banquero de una pequeña ciudad podría tratar con El algoritmo del banquero se puede generalizar para manejar varios recursos. La
un grupo de clientes a los que ha otorgado líneas de crédito. Lo que hace el algoritmo figura muestra cómo funciona.
es comprobar si al otorgar la petición se produce un estado inseguro. Si es así, la En la figura se muestran dos matrices. La de la izquierda muestra cuántas instancias
petición se rechaza. Si al otorgar la petición se produce un estado seguro, se lleva a de cada recurso están asignadas en un momento dado a cada uno de los cinco
cabo. procesos. La matriz de la derecha muestra cuántos recursos sigue necesitando cada
En la imagen (a) podemos ver cuatro clientes, A, B, C y D, cada uno de los cuales ha proceso para poder completarse.
recibido un cierto número de unidades de crédito (por ejemplo, 1 unidad es 1K
dólares). El banquero sabe que no todos los clientes necesitan su crédito máximo de
inmediato, por lo que ha reservado sólo 10 unidades en vez de 22 para darles servicio
3. Repetir los pasos 1 y 2 hasta que todos los procesos se marquen como terminados
(en cuyo caso el estado inicial era seguro) o hasta que no haya ningún proceso cuyas
necesidades de recursos se puedan satisfacer (en cuyo caso hay un interbloqueo).

Al igual que en el caso con un solo recurso, los procesos deben declarar sus
necesidades totales de recursos antes de ejecutarse, por lo que el sistema puede
calcular la matriz derecha en cada instante.
Los tres vectores a la derecha de la figura muestran los recursos existentes (E), los
recursos poseídos
(P) y los recursos disponibles (A), respectivamente. De E podemos ver que el sistema
tiene seis unidades de cinta, tres trazadores, cuatro impresoras y dos unidades de
CD-ROM. De éstos, ya hay asignados cinco unidades de cinta, tres trazadores, dos
impresoras y dos unidades de CD-ROM.
Ahora se puede declarar el algoritmo para comprobar si un estado es seguro.
1. Buscar una fila R, cuyas necesidades de recursos no satisfechas sean menores o
iguales que A. Si no existe dicha fila, el sistema entrará en interbloqueo en un
momento dado, debido a que ningún proceso se podrá ejecutar hasta completarse
(suponiendo que los procesos mantienen todos los recursos hasta que terminan).
2. Suponer que el proceso seleccionado de la fila solicita todos los recursos que
necesita (lo que se garantiza que es posible) y termina. Marcar ese proceso como
terminado y agregar todos sus recursos al vector A.

You might also like