Deadlocks
Caracterización de deadlock
Métodos para manejar
deadlock
Prevenir, Predecir, detección
Recuperación de deadlock...
Conceptos
 Bloqueo permanente de un grupo de procesos
que compiten por los recursos del sistema o bien
se comunican unos ...
Ejemplo
 Un programa A quiere copiar desde el disco 1 al
disco 2 y toma el control sobre disco 1.
 Un programa B quiere ...
Modelo del sistema
 Tipos de recursos: R1,R2,….,Rn
– ciclos de CPU, espacio de memoria, E/S
 Cada Recurso Ri
posee Wi
in...
Modelo del Sistema
El uso de los recursos solo puede ser hecho por
medio de llamadas al sistema (System Calls)
Ejemplo
Ope...
Caracterización
 Condiciones necesarias para que deadlock ocurre:
– Exclusión Mutua: solo un proceso a la vez puede
usar ...
Caracterización
DEADLOCK <=====> las 4 condiciones ocurren
Grafo de recursos
 G = (V,E) dirigido
 V dividido en dos tipos
– P : conjunto de procesos en el sistema
– R : conjunto d...
Grafo de Recursos
P1 P2 P3
R1 R3
R2
R4
Ejemplo
P1 P2
P3
R2
P4
R1
Grafo
 Si el grafo NO contiene ciclos ==> NO deadlock
 Si el grafo contiene ciclos ==>
– Deadlock si hay una instancia p...
Ejemplo
P1 P2 P3
R1 R3
R2
R4
D
E
A
D
L
O
C
K
Métodos para Manejar Deadlock
 Asegurar que el sistema nunca entra en estado
de deadlock.
– Prevención
– Predicción
 Per...
Prevención
 Método: trata de garantizar que alguna de las 4
condiciones no ocurra.
– M.E. No es posible prevenir por nega...
Prevención
 No preemption: Si un proceso solicita recursos que
NO pueden ser asignados inmediatamente, entonces
todos los...
Predicción
 Se le da a los procesos los recursos siempre que
sea posible. Se requiere toda la información acerca
de los r...
Predicción
 Un algoritmo que evita deadlock examina
dinámicamente el estado de los recursos
asignados para asegurar que n...
Estado seguro
 Cuando un proceso solicita recursos, el sistema
debe decidir si la inmediata asignación deja al
sistema en...
Estado seguro
 Si los recursos que Pi
necesita no est'an
disponibles inmediatamente, entonces Pi
puede
esperar hasta que ...
Hechos básicos
 Si un sistema está en estado seguro ==> NO
deadlock
 Si un sistema está en estado inseguro ==> existe
po...
Abolir Deadlock
♣System grants resources only if it is safe
♣basic assumption: maximal request per process is
known
♣Examp...
Estado Seguro e Inseguro
♣Safe stated:
♥Not deadlocked
♥There is a way to satisfy all possible future requests
Algoritmo del Banquero
 Cada proceso debe a priori declara el número
máximo de recursos a usar.
 Cuando un proceso solic...
Algoritmo del Banquero
 Sea n número de procesos; m número de tipos de recursos
 Available[m]. Si Available[j]=k, hay k ...
Algoritmo Seguro
1. Work[m]:= Available[m] ; Finish[i] :=false para i=1,….n
 Find an i such that both:
 Finish[i]=false
...
Algoritmo Banker’s
 If Requesti <= Needi go to step 2. Caso contrario error
el proceso excede su máximo de demanda.
 If ...
Ejemplo Banquero
5 procesos, 3 tipos de recursos tipo A 10 instancias tipo
B 5 instancias y tipo C 7 instancias.
Foto en e...
Ejemplo Banker’s
El contenido de la Matriz Need es
Need
A B C
P0 7 4 3
P1 1 2 2
P2 6 0 0
P3 0 1 1
P4 4 3 1
El sistema esta...
Ejemplo Banker’s
Supongamos que P1 requiere (1,0,2) . Cheque que
Request <= Available ( (1,0,2) <= (3,3,2)) ==> true
Alloc...
Detección de deadlock
 Permite que el sistema entre en deadlock
 Algoritmo de detección.
 Esquema de recuperación
Algoritmo de Detección
Work y Finish vectores de long. m y n respectivamente.
Work:= Available ;
1. For i=1,2,….n if Alloc...
Ejemplo deteccion
5 procesos, 3 tipos de recursos tipo A 7 instancias tipo B 2
instancias y tipo C 6 instancias.
Foto en e...
Ejemplo Deteccion
P2 requiere una instancia adicional del tipo C
Request Available
A B C 0 0 0
P0 0 0 0
P1 2 0 2
P2 0 0 1
...
Recuperación del Deadlock
 Terminación de Procesos
– Abortar todos los procesos que forman parte del
deadlock. => costo e...
Recuperación del Deadlock
 Preemption
– Le sacamos algunos recursos a los procesos que
participan en el deadlock y se lo ...
Enfoque Combinado
 Combina los tres enfoque
– prevención
– predicción
– detección
 permite el uso del enfoque optimo par...
Próxima SlideShare
Cargando en…5
×

Deadlock

652 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
652
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
24
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Deadlock

  1. 1. Deadlocks Caracterización de deadlock Métodos para manejar deadlock Prevenir, Predecir, detección Recuperación de deadlock Emely Arráiz Ene-Mar 08
  2. 2. Conceptos  Bloqueo permanente de un grupo de procesos que compiten por los recursos del sistema o bien se comunican unos con otros.  Un sistema consiste en un número finito de recursos que será distribuidos entre los procesos dentro del sistema.  Ejemplos Recursos: CPU, memoria, disco, etc.
  3. 3. Ejemplo  Un programa A quiere copiar desde el disco 1 al disco 2 y toma el control sobre disco 1.  Un programa B quiere copiar desde el disco 2 al disco 1 y toma el control sobre disco 2.  El programa A debe esperar hasta que el programa B libere el disco 2. El programa B debe esperar hasta que el programa A libere disco 1.  Ambos programas deberán espera para siempre.
  4. 4. Modelo del sistema  Tipos de recursos: R1,R2,….,Rn – ciclos de CPU, espacio de memoria, E/S  Cada Recurso Ri posee Wi instancias.  Cada proceso usa los recursos – solicita o hace un requerimiento – los usa – los libera (al final)
  5. 5. Modelo del Sistema El uso de los recursos solo puede ser hecho por medio de llamadas al sistema (System Calls) Ejemplo Open/close para archivos malloc/free para memoria request/release para dispositivos (waits y signal) Existe deadlock cuando cada proceso en el conjunto está esperando por un evento que sólo puede ser causado por otro proceso en el conjunto.
  6. 6. Caracterización  Condiciones necesarias para que deadlock ocurre: – Exclusión Mutua: solo un proceso a la vez puede usar el recurso. – Hold and wait: un proceso tiene al menos un recurso y espera que le asignen otros. – No Preemption: recursos solo puede ser liberado voluntariamente, por el proceso que lo tiene. – Espera circular: dos o mas procesos esperan por recursos tenidos por otros procesos. p1 espera por p2, p2 espera por p3, y pn espera por p1.
  7. 7. Caracterización DEADLOCK <=====> las 4 condiciones ocurren
  8. 8. Grafo de recursos  G = (V,E) dirigido  V dividido en dos tipos – P : conjunto de procesos en el sistema – R : conjunto de recursos en el sistema.  Lados de requerimientos: arcos dirigidos Pi -->Rj  Lados de asignación: arcos dirigidos Rj -->Pi
  9. 9. Grafo de Recursos P1 P2 P3 R1 R3 R2 R4
  10. 10. Ejemplo P1 P2 P3 R2 P4 R1
  11. 11. Grafo  Si el grafo NO contiene ciclos ==> NO deadlock  Si el grafo contiene ciclos ==> – Deadlock si hay una instancia por recurso – Posibilidad de deadlock si muchas instancias por tipo de recursos. Un ciclo es condición necesaria pero no suficiente.
  12. 12. Ejemplo P1 P2 P3 R1 R3 R2 R4 D E A D L O C K
  13. 13. Métodos para Manejar Deadlock  Asegurar que el sistema nunca entra en estado de deadlock. – Prevención – Predicción  Permitir que el sistema entre al estado de deadlock y luego recuperarlo.  Ignorar el problema y pretender que no va a ocurrir. (Sol. De muchos sistemas como UNIX. El sistema se va degradando y tiene que intervenir el administrador. Es un enfoque aceptable.
  14. 14. Prevención  Método: trata de garantizar que alguna de las 4 condiciones no ocurra. – M.E. No es posible prevenir por negación de la exclusión mutua, ya que existe recursos intrínsicamente no compartibles. Ej printer – H.and W. Se debe garantizar que siempre que un proceso solicite un recurso, el no tiene otro.  Protocolo 1: se le asignan a los procesos TODOS los recursos antes de comenzar.  Protocolo 2: Un proceso solo puede solicitar recursos cuando no tiene ninguno. Baja utiliz. de recursos, starvation
  15. 15. Prevención  No preemption: Si un proceso solicita recursos que NO pueden ser asignados inmediatamente, entonces todos los recursos que el tiene asignado son liberados. Los recursos quitados son sumados a la lista de recursos por la cual el proceso espera. El proceso continua cuando le sean devueltos los recursos quitados, mas los nuevos.  Circular Wait: Se impone un orden total de todos los tipos de recursos y que los procesos hagan sus requerimientos en orden creciente de enumeración
  16. 16. Predicción  Se le da a los procesos los recursos siempre que sea posible. Se requiere toda la información acerca de los request y release. Con esta información se decide si el proceso debe esperar o no.  Información requerida – Recursos disponibles – Recursos asignados a cada proceso – Liberaciones y futuras solicitudes de recursos.
  17. 17. Predicción  Un algoritmo que evita deadlock examina dinámicamente el estado de los recursos asignados para asegurar que nunca puede haber un condición de espera circular.  El estado de asignación de recursos es definido por – el número de recursos disponibles y asignados – la demanda máxima de los procesos.
  18. 18. Estado seguro  Cuando un proceso solicita recursos, el sistema debe decidir si la inmediata asignación deja al sistema en estado seguro.  Un sistema está en estado seguro, si existe una secuencia segura de todos los procesos.  La secuencia <P1,P2,….Pn> es segura si para cada Pi , los recursos que Pi aun necesita pueden ser satisfechos por los recursos disponibles + los que libere Pj para todo j < I.
  19. 19. Estado seguro  Si los recursos que Pi necesita no est'an disponibles inmediatamente, entonces Pi puede esperar hasta que Pj haya finalizado.  Cuando Pj finaliza, Pi puede obtener los recursos, se ejecuta y devuelve los recursos asignados.  Cuando Pi termina, Pi+1 puede obtener los recursos que el necesita.
  20. 20. Hechos básicos  Si un sistema está en estado seguro ==> NO deadlock  Si un sistema está en estado inseguro ==> existe posibilidad de deadlock.  Predicción ==> asegurar que el sistema nunca entre en estado inseguro.
  21. 21. Abolir Deadlock ♣System grants resources only if it is safe ♣basic assumption: maximal request per process is known ♣Example: 2 processes and 2 devices (Printer & Plotter)
  22. 22. Estado Seguro e Inseguro ♣Safe stated: ♥Not deadlocked ♥There is a way to satisfy all possible future requests
  23. 23. Algoritmo del Banquero  Cada proceso debe a priori declara el número máximo de recursos a usar.  Cuando un proceso solicita recurso, el puede tener que esperar.  Cuando a un proceso se le asignan todos los recursos, el debe devolverlos en una cantidad finita de tiempo .
  24. 24. Algoritmo del Banquero  Sea n número de procesos; m número de tipos de recursos  Available[m]. Si Available[j]=k, hay k instancia disponible del tipo de recurso Rj  Max[nxm]. Si Max[i,j]=k, entonces Pi a lo mas debe requerir k instancias del recurso Rj  Allocation[nxm]. Si Allocation[i,j] =k, entonces Pi tiene asignado k instancia del recurso Rj .  Need[nxm]. Si Need[i,j]=k, entonces Pi un necesita k instancia de Rj para completar su tarea. – Need[i,j]= Max[i,j] - Allocation[i,j]
  25. 25. Algoritmo Seguro 1. Work[m]:= Available[m] ; Finish[i] :=false para i=1,….n  Find an i such that both:  Finish[i]=false  Needi <= Work  if no exists i, go to step 4  Work := Work + Allocationi  Finisk[i] := true  go to step 2 1. If Finish[i] = true for all i,then the system is in a safe state.
  26. 26. Algoritmo Banker’s  If Requesti <= Needi go to step 2. Caso contrario error el proceso excede su máximo de demanda.  If Requesti <= Available, go to step 3. Caso contrario, Pi debe espera. Los recursos no están disponibles.  Intenta la asignacion – Available := Available - Requesti – Allocationi := Allocationi + Requesti – Needi:= Needi - Requesti if safe => los recursos son asignados a Pi If unsafe => Pi debe esperar , se recupera el estado anterior
  27. 27. Ejemplo Banquero 5 procesos, 3 tipos de recursos tipo A 10 instancias tipo B 5 instancias y tipo C 7 instancias. Foto en el tiempo T0. Total-Recur: A=10, B=5, C=7 Allocation Max Available A B C A B C A B C P0 0 1 0 7 5 3 3 3 2 P1 2 0 0 3 2 2 P2 3 0 2 9 0 2 P3 2 1 1 2 2 2 P4 0 0 2 4 3 3 7 2 5
  28. 28. Ejemplo Banker’s El contenido de la Matriz Need es Need A B C P0 7 4 3 P1 1 2 2 P2 6 0 0 P3 0 1 1 P4 4 3 1 El sistema esta en estado seguro puesto que la secuencia P1,P3,P4,P2,P0 es una secuencia segura.
  29. 29. Ejemplo Banker’s Supongamos que P1 requiere (1,0,2) . Cheque que Request <= Available ( (1,0,2) <= (3,3,2)) ==> true Allocation Need Available A B C A B C A B C P0 0 1 0 7 4 3 2 3 0 P1 3 0 2 0 2 0 P2 3 0 2 6 0 0 P3 2 1 1 0 1 1 P4 0 0 2 4 3 1 Ejecutando el algoritmo se encuentra que P1,P3,P4,P0,P2 es una Secuencia segura
  30. 30. Detección de deadlock  Permite que el sistema entre en deadlock  Algoritmo de detección.  Esquema de recuperación
  31. 31. Algoritmo de Detección Work y Finish vectores de long. m y n respectivamente. Work:= Available ; 1. For i=1,2,….n if Allocationi <> 0 then Finish[i] :=false else Finish[i] :=true 2. Find an index i such that both: (Finish[i] = false ) and ( Requesti <= Work) if no such i exists, go to step 4 3. Work := Work + Allocationi • Finisk[i] := true • go to step 2 4. If Finish[i] = false for some i,then the system is in a deadlock.
  32. 32. Ejemplo deteccion 5 procesos, 3 tipos de recursos tipo A 7 instancias tipo B 2 instancias y tipo C 6 instancias. Foto en el tiempo T0 Allocation Request Available A B C A B C A B C P0 0 1 0 0 0 0 0 0 0 P1 2 0 0 2 0 2 P2 3 0 3 0 0 0 P3 2 1 1 1 0 0 P4 0 0 2 0 0 2 La secuencia P0,P2,P3,P1,P4 resulta con Finish[i]=true para todo i
  33. 33. Ejemplo Deteccion P2 requiere una instancia adicional del tipo C Request Available A B C 0 0 0 P0 0 0 0 P1 2 0 2 P2 0 0 1 P3 1 0 0 P4 0 0 2 P0 puede liberar sus recursos, pero insuficientes para satisfacer los otros procesos. Deadlock existe, constituido por los procesos P1,P2,P3,P4
  34. 34. Recuperación del Deadlock  Terminación de Procesos – Abortar todos los procesos que forman parte del deadlock. => costo elevado – Abortar un proceso a la vez hasta que el ciclo del deadlock sea eliminado. => overhead (se debe llamar muchas veces el algoritmo) – El orden de elección del proceso a abortar – Prioridad de procesos – Que cantidad ha calculado el proceso y cuanto le falta para completar – recursos usados por el proceso – recursos que necesita para terminar – Procesos interactivo o batch – Numero de procesos que necesitan ser terminados
  35. 35. Recuperación del Deadlock  Preemption – Le sacamos algunos recursos a los procesos que participan en el deadlock y se lo damos a otro a ver si le va bien. – Victima de costo mínimo – Rollback. Llevar al proceso a estado seguro, el proceso continua desde el estado seguro – starvation, algunos procesos son siempre elegidos como victimas.
  36. 36. Enfoque Combinado  Combina los tres enfoque – prevención – predicción – detección  permite el uso del enfoque optimo para cada clase de recursos en el sistema  Partir los recursos en clases ordenadas jerarquicamente.  Usar la técnica mas apropiada para manejar deadlock dentro de cada clase.

×