Deadlock Flashcards
(11 cards)
Definicion de deadlock
: Bloqueo permanente de un conjunto de procesos donde cada uno de ellos está
esperando un evento que sólo puede ser generado por un proceso de dicho conjunto.
- Los procesos nunca terminan de ejecutarse
- Los recursos permanecen ocupados.
- Impidiendo que se inicien otros trabajos (afecta a otros procesos)
Definicion LIVELOCK
Situación en la cual varios procesos cambian continuamente su estado como respuesta
a cambios en los otros procesos, sin realizar ningún trabajo útil. En esta, un conjunto de procesos no
puede progresar en la ejecución de su trabajo, pero los mismos siguen en ejecución. Es más
complicada su detección dado que no están bloqueados. Pasa constantemente de NEW a READY.
Condicion para que haya deadlock
Exclusion mutua, retencion y espera, sin desalojo, espera circular
Exclusion mutua
Al menos un recurso debe estar en modo no compartido (solo un recurso puede
usarlo a la vez). Si otro proceso solicita el recurso, el proceso solicitante tendrá que esperar hasta que
el recurso sea liberado. Solamente un único proceso puede usar un mismo recurso a la vez.
Retencion y espera
Un proceso debe estar reteniendo al menos un recurso y esperando para
adquirir otros recursos adicionales que actualmente estén retenidos por otros procesos.
Sin desalojo
Los recursos no pueden ser desalojados. Un recurso solo puede ser liberado
voluntariamente por el proceso que lo retiene, después de que dicho proceso haya completado su
tarea.
Espera circular
Debe existir un conjunto de procesos en espera, tal que cada uno espere un recurso
retenido por el siguiente. Condición necesaria y suficiente.
Cual es el tratamiento de deadlock?
- Prevención/Evasión: Utilizar un protocolo para impedir o evitar los deadlocks, asegurando
que el sistema nunca entre en dicho estado, impide alguna de las 4 condiciones necesarias. - Detección y recuperación: Permitir que el sistema entre en estado de deadlock, detectarlo y
realizar una recuperación. - No tratarlo: Ignorar el problema y actuar como si nunca se produjeran deadlocks en el
sistema.
Prevencion
Posibilidad de deadlock: NULA
Cuando se aplica: Peticion de recursos
Flexibilidad en las peticiones: Restringida por la politica aplicada
Overhead: Bajo. Por lo general solo se define la forma en que se realizan las peticiones.
Utilizacion correcta de los recursos: Puede ser muy ineficiente dependiendo de la estrategia
Evasion
Posibilidad de deadlock: NULA
Cuando se aplica: Asignacion de recursos
Flexibilidad en las peticiones: Intermedia, los procesos deben declarar sus peticiones maximas
Overhead: Alto. Por cada peticion se corre el algoritmo del baquero.
Utilizacion correcta de los recursos: Por ser pesimista puede evitar asignar un recurso.
Deteccion y recuperacion
Posibilidad de deadlock: NO NULA
Cuando se aplica: Deadlock
Flexibilidad en las peticiones: Flexible. Cualquier solicitud puede realizarse.
Overhead: Intermedio. Depende de la frecuencia con la qeu se ejecute el algoritmo de deteccion.
Utilizacion correcta de los recursos: Puede llegar a ser ineficiente en caso de desalojos frecuentes.