La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Deadlocks Caracterización de deadlock Métodos para manejar deadlock Prevenir, Predecir, detección Recuperación de deadlock Emely Arráiz Ene-Mar 08.

Presentaciones similares


Presentación del tema: "Deadlocks Caracterización de deadlock Métodos para manejar deadlock Prevenir, Predecir, detección Recuperación de deadlock Emely Arráiz Ene-Mar 08."— Transcripción de la presentación:

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 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 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 Modelo del sistema Tipos de recursos: R1,R2,….,Rn –ciclos de CPU, espacio de memoria, E/S Cada Recurso R i posee W i instancias. Cada proceso usa los recursos –solicita o hace un requerimiento –los usa –los libera (al final)‏

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 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 Caracterización DEADLOCK las 4 condiciones ocurren

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 P i -->R j Lados de asignación: arcos dirigidos R j -->P i

9 Grafo de Recursos P1P2P3 R1 R3 R2 R4

10 Ejemplo P1P2 P3 R2 P4 R1

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 Ejemplo P1P2P3 R1 R3 R2 R4 DEADLOCKDEADLOCK

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 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 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 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 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 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 es segura si para cada P i, los recursos que P i aun necesita pueden ser satisfechos por los recursos disponibles + los que libere P j para todo j < I.

19 Estado seguro Si los recursos que P i necesita no est'an disponibles inmediatamente, entonces P i puede esperar hasta que P j haya finalizado. Cuando P j finaliza, P i puede obtener los recursos, se ejecuta y devuelve los recursos asignados. Cuando P i termina, P i+1 puede obtener los recursos que el necesita.

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 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 Estado Seguro e Inseguro  Safe stated: Not deadlocked There is a way to satisfy all possible future requests

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 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 R j Max[nxm]. Si Max[i,j]=k, entonces P i a lo mas debe requerir k instancias del recurso R j Allocation[nxm]. Si Allocation[i,j] =k, entonces P i tiene asignado k instancia del recurso R j. Need[nxm]. Si Need[i,j]=k, entonces Pi un necesita k instancia de R j para completar su tarea. –Need[i,j]= Max[i,j] - Allocation[i,j]

25 Algoritmo Seguro 1. Work[m]:= Available[m] ; Finish[i] :=false para i=1,….n Find an i such that both: Finish[i]=false Need i <= Work if no exists i, go to step 4 Work := Work + Allocation i Finisk[i] := true go to step 2 1. If Finish[i] = true for all i,then the system is in a safe state.

26 Algoritmo Banker’s If Request i <= Need i go to step 2. Caso contrario error el proceso excede su máximo de demanda. If Request i <= Available, go to step 3. Caso contrario, Pi debe espera. Los recursos no están disponibles. Intenta la asignacion –Available := Available - Request i –Allocation i := Allocation i + Request i –Need i:= Need i - Request i if safe => los recursos son asignados a Pi If unsafe => Pi debe esperar, se recupera el estado anterior

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 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 Ejemplo Banker’s Supongamos que P1 requiere (1,0,2). Cheque que Request 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 Detección de deadlock Permite que el sistema entre en deadlock Algoritmo de detección. Esquema de recuperación

31 Algoritmo de Detección Work y Finish vectores de long. m y n respectivamente. Work:= Available ; 1. For i=1,2,….n if Allocation i <> 0 then Finish[i] :=false else Finish[i] :=true 2. Find an index i such that both: (Finish[i] = false ) and ( Request i <= Work) if no such i exists, go to step 4 3. Work := Work + Allocation i Finisk[i] := true go to step 2 4. If Finish[i] = false for some i,then the system is in a deadlock.

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 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 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 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 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.


Descargar ppt "Deadlocks Caracterización de deadlock Métodos para manejar deadlock Prevenir, Predecir, detección Recuperación de deadlock Emely Arráiz Ene-Mar 08."

Presentaciones similares


Anuncios Google