Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
Administracin de procesos
Necesidad
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
Clasificacin de recursos
Para el estudio del interbloqueo, los recursos se pueden clasificar en:
Exclusin mutua
Si dos procesos solicitan un recurso exclusivo, uno de los dos quedar suspendido hasta que
el favorecido libere el recurso.
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
Formas de
enfrentar los interbloqueos
Existen varias polticas y estrategias que el sistema operativo puede tomas, para tratar con
los interbloqueos:
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
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
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
Conceptos
La evitacin se basa en los siguientes conceptos:
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:
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
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.
2.
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:
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.