Professional Documents
Culture Documents
Un sistema está en interbloqueo cuando uno o mas procesos están esperando un evento que no va ha
suceder.
Es una situación en la cual uno o mas procesos están bloqueados como consecuencia de que cada proceso
tiene retenido un subconjunto de los recursos necesarios para su finalización y tengan que esperar la
liberación de los recursos restantes retenidos por otros procesos del mismo grupo.
EN DONDE
Se presenta en sistemas multiprogramados.
Se presenta cuando los recursos son compartidos y por consiguiente no son suficientes.
Ejemplos.
Trafico de automóviles.
Cuando se da el bloqueo, el trafico se detiene completamente, para resolver este problema,
algún(os) carros deben regresar sobre lo avanzado para permitir que los otros puedan avanzar.
El costo del bloqueo es muy alto.
Recursos apropiables.
Son aquellos que pueden ser apropiados por los procesos, ejem. MEMORIA, CPU.
Esto es, que un proceso que hace uso de un espacio de memoria puede ser expulsado por un
nuevo proceso quien se apropiara del espacio de memoria.
La CPU se puede alternar rápidamente entre varios procesos. Cuando un proceso no puede
apropiarse de la CPU, entonces perderá el control sobre ella y por lo tanto se bloqueara.
Exclusión mutua.
Se debe de conservar la exclusión mutua para los recursos no compartibles. (ejem. impresora)
No Problema
1 No es posible evitar el inter bloqueo negando la condición de exclusión mutua.
Pues por su propia naturaleza algunos recursos no pueden compartirse durante algunos instantes de
tiempo.
Retención y Espera
Cada proceso deberá pedir todos los recursos que necesita al mismo tiempo y no podrá seguir
hasta obtenerlos todos.
No Problema
1 Desperdicio de los recursos.
Un proceso debe pedir todos los recursos, algunos de los cuales pueden no usarse.
Alternativa: Dividir el programa en procesos que hagan uso de recursos de manera independiente.
2 Aplazamiento Indefinido
Pues los recursos pueden no estar disponibles todos al mismo tiempo.
No Apropiación.
Si a un proceso le falta algún recurso, deberá liberar los recursos ya asignados.
No Problema
1 Perdida de trabajo
Un proceso puede perder todo el trabajo realizado cuando no pueda obtener un recurso.
Alternativa : Evaluar la frecuencia con que ocurre el problema, si es poca se puede implementar.
2 Aplazamiento Indefinido
El proceso se aplaza mientras pide y libera recursos
Espera Circular.
A los recursos se les asigna un ordenamiento lineal (numeración única ascendente).
Los números asignados a los recursos deben reflejar el orden natural en que son solicitados.
Si a un proceso se le ha asignado un recurso en lo sucesivo solo podrá pedir los recursos que
siguen en el ordenamiento.
No Problema
1 Perdida de trabajo
Un proceso que requiera los recursos en orden diferente puede conservar los recursos adquiridos
mucho tiempo, hasta que se liberen los recursos requeridos.
2 Limitación a los programadores
Se debe programar de tal manera que los recursos se requieran en el orden indicado.
Sean D(r) las unidades del recurso r con que cuenta el sistema.
R(r,p) el requerimiento máximo de recursos del tipo r, para el proceso p.
Entonces el sistema podrá asignar un requerimiento R(r,p) si:
D(r) >= P(r) + R(r,p)
tal que:
P(r) = P(r) + R(r,p)
donde P(r), es el numero de recursos asignados del recurso r
Cuando el proceso p libere los recursos asignados
P(r) = P(r) - R(r,p)
Estado seguro.
Existe al menos una forma de que terminen todos los procesos.
Se podría asignar los 2 recursos que sobran a P2 y esperar a que este luego libere luego 6
recursos.
Estado inseguro.
No se puede garantizar que los procesos terminen.
Si P3 solicita 1 recurso, sobraría 1 recurso.
En este estado no se puede garantizar que los procesos terminen pues algunos de ellos podría
pedir un recurso más que no puede ser satisfecho.
Pero este no es un estado de bloqueado, sino que no puede garantizarse que termine.
Análisis del Algortimo del banquero de Dijkastra
Con este algoritmo se satisfacen las condiciones de espera, no apropiación y espera circular, pero
los procesos necesitan el uso exclusivo de los recursos.
Los usuarios puede solicitar los recursos cuando lo necesiten.
El sistema solo satisface las peticiones que lleven a un estado seguro.
No Problema
1 numero fijo de recursos asignables
No siempre se puede contar con los recursos declarados
2 Numero de usuarios constante
La población de usuarios en los sistemas grandes puede cambiar constantemente
3 Espera limitada
El algoritmo requiere que el sistema satisfaga todas las peticiones en un tiempo finito
4 Devolución de los recursos asignados
El algoritmo requiere que los usuarios salden sus prestamos (recursos asignados) en un tiempo
finito
5 Declaración de necesidades
Muchos usuarios no saben que recursos ven ha necesitar.
N = (L,P,A,M,D)
donde:
L = (l1,l2,l3,.....,lm) Conjunto finito de Lugares
P = (p1,p2,p3,.....,pn) Conjunto finito de Transiciones.
A⊂IUO Conjunto de arcos direccionados entre lugares y transiciones y entre
transiciones y lugares.
además:
I = {L X P} = {(l1,p1),...(l1,pn),...(lm,p1),...(lm,pn)} Conjunto de arcos que representa los lugares lh
de entrada a las transiciones pi.
O = {P X L} = {(p1,l1),...(p1,lm),...(pn,l1),...(pn,lm)} Conjunto de arcos que representa los lugares lj de salida
las transiciones pk.
M: L --> F, M(l1,l2,l3,.....,lm) = (f1,f2,f3,.....,fm) conjunto de marcas o fichas asociadas a cada lugar
A⊂IUO
donde:
I = {LxP} = {(l0,p0),(l1,p1), (l2,p2)}
O = {PxL} = {(p0,l1),(p0,l2), (p1,l3), (p2,l3)}
Ejemplos:
Para determinar si existe inter bloqueo se debe de analizar el gráfico.
Terminación de procesos.
Con estos métodos el sistema recupera todos los recursos asignados a los procesos terminados.
Abortar todos los procesos que están en interbloqueo.
Rompe el interbloqueo definitivamente pero es muy costoso.
Pero no es fácil terminar un proceso, este podría estar realizando una operación que no se puede
recuperar.
Retroceso.
Si se expropia un recursos a un proceso se debe de retroceder el proceso hasta llegar a un estado
seguro, como esto no es sencillo se prefiere, retroceder totalmente.
Bloqueo indefinido.
Como garantizar que los recursos a expropiar no son del mismo proceso.
Si la decisión de seleccionar a un proceso se basa en el costo, puede suceder que siempre se elija
a la misma víctima.
Si se llega a esto entonces habrá un situación de bloqueo indefinido.
Una solución es incluir el numero de retrocesos en el factor costo.