La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Bloqueos Mutuos Modelo del Sistema Caracterización de Deadlock Métodos de manejo de Deadlocks Prevención de Deadlocks Evitación de Deadlocks Detección.

Presentaciones similares


Presentación del tema: "Bloqueos Mutuos Modelo del Sistema Caracterización de Deadlock Métodos de manejo de Deadlocks Prevención de Deadlocks Evitación de Deadlocks Detección."— Transcripción de la presentación:

1 Bloqueos Mutuos Modelo del Sistema Caracterización de Deadlock Métodos de manejo de Deadlocks Prevención de Deadlocks Evitación de Deadlocks Detección de Deadlocks Recuperación de Deadlocks Aproximación combinada para el manejo de deadlocks

2 El Problema de Deadlock Un conjunto de procesos bloqueados cada uno reteniendo un recurso y esperando adquirir otro retenido por otro proceso del conjunto. Ejemplo  El sistema tiene 2 dispositivos de cinta.  P 1 y P 2 tienen una unidad de cinta cada uno y necesita la que tiene el otro.

3 Cruce del Puente El tráfico es en una sola dirección. Cada parte del puente puede verse como un recurso. Si ocurre un deadlock, puede resolverse si uno de los autos retrocede. Varios autos pueden tener que retroceder si ocurre un deadlock. Es posible que haya inanición.

4 Modelo del Sistema Tipos de recursos R 1, R 2,..., R m ciclos de CPU, espacio de memoria, dispositivos de E/S Cada recurso de tipo R i tiene W i instancias. Cada proceso utiliza un recurso de la siguiente forma:  pedir  usar  liberar

5 Caracterización de Deadlocks Un deadlock puede ocurrir si se dan simultaneamente las siguientes condiciones:  Exclusión mutua: sólo un procso a la vez puede usar un recurso.  Retener y esperar: un proceso retiene al menos un recurso esperando adquirir uno adicional retenido por otro proceso.  No expropiación: un recurso sólo se puede liberar en forma voluntaria por el proceso que lo retiene, después que el proceso completó su tarea.  Espera circular: existe un conjunto {P 0, P 1, …, P 0 } de procesos esperando de forma tal que P 0 está esperando por un recurso que retiene P 1, P 1 está esperando uno que es retenido por P 2, …, P n–1 está esperando un recurso retenido por P n, y P n está esperando por un proceso retenido por P 0.

6 Grafo de Asignación de Recursos Un conjunto de vértices V y aristas E:  V está dividido en 2 tipos: P = {P 1, P 2, …, P n }, el conjunto de todos los procesos del sistema. R = {R 1, R 2, …, R m }, el conjunto de todos los tipos de recursos del sistema.  Arista de pedido – arista dirigida P i → R j  Arista de asignación – arista dirigida R j → P i

7 Grafo de Asignación de Recursos (Cont.)‏ Procesos Tipo de recursos con 4 instancias P i pide una instancia del recurso R j P i tiene una instancia del recurso R j PiPi PiPi RjRj RjRj

8 Ejemplo de Grafo de Asignación de Recursos

9 Grafo de Asignación de Recursos con Deadlock

10 Grafo de Asignación de Recursos con un Ciclo sin Deadlock

11 En Resumen... Si el grafo no tiene ciclos => no existen deadlocks. Si el grafo contiene un ciclo =>  Si hay una sola instancia de cada tipo de recurso, entonces hay deadlock.  Si hay muchas instancias de cada recurso, hay posibilidad de deadlock.

12 Métodos para Manejo de Deadlocks Asegurar que el sistema nunca entrará en un estado de deadlock. Permitir que el sistema entre en un estado de deadlock y recuperase. Ignorar el problema como si el problema nunca pudiese suceder en el sistema; utilizado por la mayoria de los sistemas incluido UNIX.

13 Prevención de Deadlocks Restringir la forma en que se hace el pedido:  Exclusión mutua – no requerida para recursos que se pueden compartir; se debe mantener para recursos que no se pueden compartir.  Obtener y esperar – debe garantizar que cualquier proceso que pide un recurso, no retenga ningun otro recurso. Requiere que los procesos pidan y se les asigne todos los recursos antes de empezar a ejecutar, o permitir a los procesos pedir recursos sólo cuando no tiene ninguno. Baja utilización de recursos; posibilidad de inanición.

14 Prevención de Deadlocks (Cont.)‏  No expropiación – Si un proceso que retiene algun recurso requiere otro que no puede ser asignado inmediatamente, entonces los recursos retenidos son liberados. Los recursos expropiados son agregados a la lista de recursos por los cuales el proceso está esperando. Los procesos son reiniciados sólo cuando pueden recuperar sus recursos originales y los nuevos que está pidiendo.  Espera circular – impone un orden total a todos los tipos de recursos, y requiere que cada proceso pida los recursos en orden creciente.

15 Evitación de Deadlocks Requiere que el sistema tenga información adicional previa disponible:  El modelo más simple y util requiere que cada proceso declare el máximo numero de recursos de cada tipo que va a necesitar.  El algoritmo de evitación de deadlock examina dinamicamente el estado de asignación de recursos para asegurar que nunca se producirá una condición de espera circular.  El estado de asignación de recursos se define como el numero de recursos asignados y disponibles, y la demanda máxima de los procesos.

16 Estado Seguro Cuando un proceso pide un recurso disponible, el sistema decide si la asignación inmediata deja al sistema en un estado seguro. El sistema está en un estado seguro si existe una secuencia segura para todos los procesos. La secuencia es segura si para cada proceso P i, los recursos que P i todavía puede pedir puede ser satisfecho por los recursos actualmente disponibles + los recursos retenidos por todos los procesos P j, con j<i.  Si los recursos que P i necesita no están disponibles inmediatamente, entonces P i puede esperar hasta que todos los P j hayan terminado.  Cuando P j termina, P i puede obtener los recursos necesarios, ejecutar, retornar los recursos asignados y terminar.  Cuando P i termina, P i+1 puede obtener los recursos necesarios, y asi sucesivamente.

17 Estado Seguro, Inseguro, Deadlock

18 En Resumen... Si un sistema está en un estado seguro => no hay deadlocks. Si un sistema está en un estado inseguro => posibilidad de deadlock. Evitación => asegurar que el sistema nunca entrará en un estado inseguro.

19 Algoritmo de Asignación de Recursos Una arista de reserva P i → R j indica que el proceso P j puede pedir el recurso R j ; representado por una línea discontinua. Una arista de reserva se transforma en una de asignación cuando un proceso pide un recurso. Cuando un recurso es liberado por un proceso, la arista de asignación se convierte en una de reserva. Los recursos deben ser reservados con anticipación.

20 Grafo de Asignación de Recursos para la Evitación de Deadlocks

21 Estado Inseguro en el Grafo de Asignación de Recursos

22 Algoritmo del Banquero Múltiple instancias. Cada proceso debe reservar con anticipación la cantidad máxima para cada recurso. Cuando un proceso pide un recurso podría esperar. Cuando el proceso obtiene todos sus recursos los debe devolver en un plazo finito de tiempo.

23 Estructuras de Datos para el Algoritmo del Banquero Siendo n = número de procesos, y m = número de tipo de recursos:  Disponible: vector de longitud m. Si Disponible[j] = k, entonces hay k instancias del recurso R j disponibles.  Max: matriz de n x m. Si Max [i,j] = k, entonces el proceso P i puede pedir como máximo k instancias del recurso de tipo R j.  Asignación: matriz de n x m. Si Asignación[i,j] = k entonces P i tiene asignadas k instancias de R j.  Necesidad: matriz n x m. Si Necesidad[i,j] = k, entonces P i puede necesitar k instancias más de R j para completar su tarea. Necesidad [i,j] = Max[i,j] – Asignación [i,j].

24 Algoritmo de Seguridad 1.Sean Trabajo y Fin vectores de longitud m y n, respectivamente. Inicializar: Trabajo = Disponible Fin [i] = false para i = 1,2,3, …, n. 2.Encontrar un i tal que: (a) Fin [i] = false (b) Necesidad i <= Trabajo Si no existe un i, ir al paso 4. 3.Trabajo = Trabajo + Asignación i Fin [i] = true ir al paso 2. 4.Si Fin [i] == true para todo i, entonces el sistema está en un estado seguro.

25 Algoritmo de Pedido de Recursos para el Proceso P i Solicitud = vector de recursos pedidos por el proceso P i. Si Solicitud i [j] = k entonces el proceso P i quiere k instancias del recurso R j. 1.Si Solicitud i <= Necesidad i ir al paso 2. Si no, levantar una condición de error, dado que el proceso exedió el número máximo de reserva. 2.Si Solicitud i <= Disponible, ir al paso 3. Si no P i debe esperar, dado que no hay recursos disponibles. 3.Intentar asignar los recursos pedidos a P i modificando los estados de la siguiente forma: Disponible = Disponible - Solicitud i Asignación i = Asignación i + Solicitud i Necesidad i = Necesidad i – Solicitud i Si es seguro => los recursos son asignados a P i. Si es inseguro => P i debe esperar, y el viejo estado de asignación de recursos es restablecido.

26 Ejemplo del Algoritmo del Banquero 5 procesos P 0 hasta P 4 ; 3 recursos de tipo A (10 instancias), B (5 instancias, y C (7 instancias). Foto en el instante T 0 : AsignaciónMaxDisponible A B C A B C A B C P 0 0 1 0 7 5 3 3 3 2 P 1 2 0 0 3 2 2 P 2 3 0 2 9 0 2 P 3 2 1 1 2 2 2 P 4 0 0 2 4 3 3

27 Ejemplo (Cont.)‏ El contenido de la matriz. Necesita es definido como Max – Asignados. Necesidad A B C P 0 7 4 3 P 1 1 2 2 P 2 6 0 0 P 3 0 1 1 P 4 4 3 1 El sistema está en un estado seguro dado que la secuencia satisface el criterio de seguridad.

28 Ejemplo de P 1 Pidiendo (1,0,2) (Cont.)‏ Revisar que Requeridos true. AsignaciónNecesidad Disponible A B C A B C A B C P 0 0 1 0 7 4 3 2 3 0 P 1 3 0 2 0 2 0 P 2 3 0 1 6 0 0 P 3 2 1 1 0 1 1 P 4 0 0 2 4 3 1 La ejecución del algoritmo de seguridad muestra que la secuencia satisface los requerimientos de seguridad. Se puede garantizar el pedido (3,3,0) de P 4 ? Se puede garantizar el pedido (0,2,0) de P 0 ?

29 Detección de Deadlock Permite a un sistema entrar en un estado de deadlock Algoritmo de detección Mecanismo de recuperación

30 Única instancia de Cada Tipo de Recurso Mantiene un grafo de espera  Los nodos son procesos.  P i → P j si P i está esperando por P j. Periódicamente se invoca un algoritmo que busca por un ciclo en el grafo. Un algoritmo para detectar un ciclo en un grafo tiene un orden de n 2 operaciones, donde n es el número de vértices del grafo.

31 Grafos de Asignación y Espera de Recursos Grafo de asignaciónGrafo de espera

32 Varias Instancias de un Tipo de Recurso Disponible: un vector de longitud m indica el número de recursos disponibles para cada tipo. Asignación: Una matriz de n x m define el número de recursos de cada tipo actualmente asignados a cada proceso. Solicitud: Una matriz de n x m indica el pedido actual de cada proceso. Si Solicitud [i j ] = k, entonces P i está pidiendo k instancias más de un recurso de tipo R j.

33 Algoritmo de Detección 1.Sean Trabajo y Fin dos vectores de longitud m y n, respectivamente. inicializar: (a)Trabajo = Disponible (b)Para i = 1,2, …, n, si Asignación i != 0, entonces Fin[i] = false; si no, Fin[i] = true. 2.Encontrar un índice i tal que: (a)Fin[i] == false (b)Solicitud i <= Trabajo Si no existe tal i, ir al paso 4.

34 Algoritmo de Detección (Cont.)‏ 3.Trabajo = Trabajo + Asignación i Fin[i] = true ir al paso 2. 4.Si Fin[i] == false, para algún i, 1 <= i <= n, entonces el sistema está en estado de deadlock. Aún más, si Finalizado[i] == false, entonces P i está en deadlock. El algoritmo requiere un orden de O(m x n 2 ) operaciones para detectar si el sistema está en estado de deadlock o no.

35 Ejemplo de Algoritmo de Detección 5 procesos P 0 hasta P 4 ; 3 recursos de tipo A (7 instancias), B (2 instancias), y C (6 instancias). Foto en el tiempo T 0 : Asignación SolicitudDisponibles A B C A B C A B C P 0 0 1 0 0 0 0 0 0 0 P 1 2 0 0 2 0 2 P 2 3 0 3 0 0 0 P 3 2 1 1 1 0 0 P 4 0 0 2 0 0 2 La secuencia retorna Fin[i] = true para todo i.

36 Ejemplo (Cont.)‏ P 2 pide una instancia adicional de tipo C. Solicitud A B C P 0 0 0 0 P 1 2 0 1 P 2 0 0 1 P 3 1 0 0 P 4 0 0 2 Estado del sistema?  Se pueden reclamar los recursos retenidos por P 0, pero son insuficientes para satisfacer los otros procesos.  Existe un deadlock, conformado por los procesos P 1, P 2, P 3, y P 4.

37 Uso del Algoritmo de Detección Cuando, y cuan seguido invocar depende de:  Cuan seguido es probable que suceda?  Cuantos procesos habrá que volver a atrás? Uno para cada ciclo disjunto Si el algoritmo de detección es invocado arbitrariamente, puede haber muchos ciclos en el grafo de recursos y no será posible decir cual de los muchos procesos bloqueados “causó” el deadlock.

38 Recuperación de Deadlocks: Terminación de Procesos Terminar todos los procesos bloqueados. Abortar un proceso a la vez hasta que se rompa el ciclo de deadlock. En que orden se deben elegir los procesos a terminar?  Prioridad de los procesos.  Cuanto tiempo ha computado, y cuanto más falta para terminar.  Cuantos recursos ha usado el proceso.  Resources process needs to complete.  Cuantos procesos tienen que ser terminados.  Es el proceso interactivo o batch?

39 Recuperación de Deadlocks: Expropiación de Recursos Seleccionar una víctima – minimizar el costo. Rollback – retornar a un estado seguro, reiniciar el proceso para ese estado. Inanición – el mismo proceso puede ser elegido siempre como víctima, incluir el número de rollback en el factor de costo.

40 Opción Combinada para el Manejo de Deadlocks Combina 3 opciones básicas  expropiación  evitación  detección permitiendo el uso de la opción óptima para cada recurso del sistema. Separa los recursos en clases ordenadas jerarquicamente. Usa la técnica más apropiada para manejar los deadlocks de cada clase.


Descargar ppt "Bloqueos Mutuos Modelo del Sistema Caracterización de Deadlock Métodos de manejo de Deadlocks Prevención de Deadlocks Evitación de Deadlocks Detección."

Presentaciones similares


Anuncios Google