Professional Documents
Culture Documents
Deadlock (Interbloqueo)
Profesores Exp. Mario IRIBAS Mag. Ing. Liliana CUENCA PLETSCH Auxiliares Ing. Alberto RISTOFF Recopilacin Bibliogrfica y elaboracin del presente material de estudio a cargo de Liliana CUENCA PLETSCH
Bibliografa Consultada
SILBERSCHATZ A. y. otros: Sistemas Operativos Conceptos Fundamentales. Sptima Edicin, Espaa, Revert S.A. TANENBAUM Andrew S.: Sistemas Operativos Diseo e Implementacin. Segunda Edicin, Mxico, Prentice Hall Hispanoamericana, 1.998.
Objetivos especficos
Analizar el problema del Bloqueo o Deadlock. Analizar las diferentes soluciones propuestas para la solucin de este problema. Ejemplificar las diferentes soluciones mediante la resolucin de trabajos prcticos Aplicar los conocimientos adquiridos a situaciones hipotticas.
Deadlock: definicin
Un conjunto de procesos est en estado de deadlock (bloqueo o interbloqueo) cuando
Solicita:
Asignado a:
P2
Solicita:
Deadlock: ejemplo
Asignado a:
P1
r1
Asignado a:
P2
No hay Deadlock porque hay dos instancias del recurso r1: Una est asignada a P1. La otra puede asignarse a P2. Cuando P2 termine devolver el recurso r2 el cual podr asignarse a P1
Deadlock: consideraciones
El sistema consiste de un nmero finito de recursos para un grupo de procesos que compiten por estos. Un proceso que se encuentra en estado de Deadlock y que tiene recursos asignados que son demandados por otros
Deadlock: consideraciones
Para usar un recurso cada proceso debe proceder del siguiente modo: Solicitar el recurso
<Usar el recurso>
Liberar el recurso
Llamadas al sistema
Posibilidad de Deadlock
Deadlock
Un conjunto de arcos (E) que representan asignacin o solicitud de recursos. Se lee rj asignado a Pi E = {(r1;P1), (r2;P2), ..., (rm;Pn), (P1;r2), (P2;r1), } Se lee Pi solicita rj
R = {r1, r2}
Recursos
P1
r1 r2
P3
P2
r1
r3
P1
P2
P3
r4
No existe Deadlok porque existe una secuencia de asignacin de recursos para satisfacer todos los requerimientos. r2 cuando P3 termine devolver r3, el cual podr asignarse a P2, que ahora podr terminar. Cuando P2 termine devolver r1 que podr asignarse a P1 para que tambien termine
r2
P3
P1
r4
P4
P1
P2
P3
r2
r4
P1 espera r1 que no ser liberado por P2 hasta que ste obtenga r3. r3 no ser liberado por P3 hasta que ste obtenga 1 instancia de r2. P1 y P2 no liberarn sus instancias de r2 hasta no obtener los recursos que solicitan.
Existe Deadlock
Asignadas la 1era. solicitud de cada proceso quedan 50 Kb libres. Para poder asignar la 2da. Solicitud a un proceso el otro debe liberar la memoria asignada
r1
Proceso P1
Proceso P2
r2
Se cumple la espera circular y la retencin y espera, Si cada recurso puede ser utilizado por un solo proceso a la vez y el SO no puede apropiarse de recursos asignados a un proceso
ocurrir.
Las restricciones y limitaciones se imponen con el fin de prevenir que una de las condiciones no ocurra.
Retencin y espera
Se debe impedir a un proceso que tiene recursos asignados solicitar otro. Para lograrlo, o bien los procesos solicitan todos los recursos antes de comenzar la ejecucin. Si no es posible asignar alguno de los recursos el proceso se bloquea. O bien, antes de solicitar nuevos recursos el proceso debe liberar los que ya tiene asignados.
r1
P1
r2
P2
porque 1 < 2
Es necesario conocer el estado del sistema. El estado del sistema es la asignacin actual de recursos a procesos. Para ello es necesario definir el nmero de recursos disponibles, nmero de recursos asignados y el mximo pedido por cada proceso.
matriz de solicitudes
matriz de asignados Matriz de necesidades
|Disponible| = |Existentes| - |Sumatoria de Asignadosj|
P1 P2 P3 P4
r1 3 10 3 4
r2 r3 2 2 1 3 1 4 2 2
P1 P2 P3 P4
r1 r2 r3 1 0 0 6 1 2 2 1 1 0 0 2
Matriz de Asignados
r1 r2 r3 9 3 6
Vector de Existencia
r1 r2 r3 0 1 1
Vector Disponibles
Matriz de Solicitudes
Ejemplo 2
P1 P2 P3 P4
r1 r2 r3 3 2 2 6 1 3 3 1 4 4 2 2
Matriz de Solicitudes
P1 P2 P3 P4
P1 P2 P3 P4
r1 r2 r3 2 2 2 0 0 1 1 0 3 4 2 0
r1 r2 r3 9 3 6
Vector de Existencia
r1 r2 r3 0 1 1
Vector Disponibles Existenciai - Asignadosi
Ejemplo 2
Estado inseguro
Se incrementa Disponibles
NO
Estado seguro
Ejemplo 2
Estado inseguro
Se incrementa Disponibles
NO
Estado seguro
Ejemplo 3
P1 P2 P3 P4
r1 r2 r3 3 2 2 6 1 3 3 1 4 4 2 2
Matriz de Solicitudes
P1 P2 P3 P4
P1 P2 P3 P4
r1 r2 r3 2 2 2 1 0 2 1 0 3 4 2 0
r1 r2 r3 9 3 6
Vector de Existencia
r1 r2 r3 1 1 2
Ejemplo 4
P1 P2 P3 P4 P5
r1 r2 r3 0 1 0 2 0 0 3 0 3 2 1 1 0 0 2
P1 P2 P3 P4 P5
Matriz de Asignados
Matriz de Necesidades
1. Obtener la matriz de Solicitudes y el vector de Existencia 2. Aplicar el algoritmo del banquero y determinar si el sistema est en estado seguro.
Ejemplo 5
P1 P2 P3 P4 P5
r1 r2 r3 0 1 0 2 0 0 3 0 3 2 1 1 0 0 2
P1 P2 P3 P4 P5
Matriz de Asignados
Matriz de Necesidades
1. Obtener la matriz de Solicitudes y el vector de Existencia 2. Aplicar el algoritmo del banquero y determinar si el sistema est en estado seguro.
solicitan.
Cada cierto tiempo se ejecuta un algoritmo para verificar la existencia o no de un estado de deadlock. Se permite la existencia de las tres primeras condiciones necesarias y se detecta la existencia de una espera circular. En caso de detectar deadlock, iniciar un procedimiento de recuperacin.
Menor cantidad de tiempo de procesador consumido hasta el momento. Menor cantidad de lneas de salida producidas hasta el momento.
Estrategias
para tratar deadlocks
Prevenir
Evitar
Detectar