La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Unidad 4 Interbloqueos (Dead Lock)

Presentaciones similares


Presentación del tema: "Unidad 4 Interbloqueos (Dead Lock)"— Transcripción de la presentación:

1 Unidad 4 Interbloqueos (Dead Lock)
Sistemas Operativos Unidad 4 Interbloqueos (Dead Lock)

2 Interbloqueos (Dead Lock)
Interbloqueos en sistemas informáticos Modelado del interbloqueo Definición y caracterización del interbloqueo Tratamiento del interbloqueo Detección y recuperación del interbloqueo Prevención del interbloqueo Predicción del interbloqueo Tratamiento de los intebloqueos en SO.

3 Interbloqueos en sistemas informáticos
En la vida cotidiana un escenario donde pueden aparecer interbloqueos se caracteriza por un conjunto de entidades activas que utilizan un conjunto de recursos para llevar a cabo su labor.

4 Interbloqueos en sistemas informáticos (2)
En un sistema informático existirán: Las entidades activas (procesos existentes en el sistema). Los recursos del sistema que utilizan los procesos para llevar a cabo su labor (Físicos: procesador, memoria, etc. Lógicos: archivos, semáforos, mutex, etc).

5 Interbloqueos en sistemas informáticos (3)
Tipos de recursos Reutilizables o consumibles ¿El recurso sigue existiendo después de usarse? Uso dedicado o compartido ¿Puede ser usado por varios procesos simultáneamente? Con uno o múltiples ejemplares ¿Existen múltiples ejemplares del mismo recurso? Expropiables o no expropiables ¿Es posible expropiar el recurso cuando se está usando?

6 Interbloqueos en sistemas informáticos (4)
Recursos reutilizables Su “vida” no depende de su utilización. Lo son todos los recursos físicos y algunos lógicos como: archivos o mutex. Primer ejemplo de interbloqueo. Dos procesos (P1, P2) dos recursos (C, I). Proceso P1 Proceso P2 Ejecución con interbloqueo Ejecución sin interbloqueo Solicita (C) Solicita (I) Solicita (I) Solicita (C) P1: Solicita (C) P1: Solicita (C) Uso de recursos Uso de recursos P2: Solicita (I) P1: Solicita (I) P2: Solicita (C) Libera (I) Libera (C) BLOQUEO P2: Solicita (I) BLOQUEO P1: Solicita (I) Libera (C) Libera (I) INTERBLOQUEO P1: Libera (I) P2: Solicita (C) BLOQUEO P1: Libera (C) P2: Libera (C) P2: Libera (I)

7 Interbloqueos en sistemas informáticos (5)
Recursos consumibles Dejan de existir una vez que un proceso los usa. Un proceso genera un recurso y otro lo consume Son los asociados a la comunicación y sincronización: Mensajes, señales, semáforos, etc. Ejemplo de interbloqueo inevitable (“estructural”) .

8 Interbloqueos en sistemas informáticos (6)
Recursos reutilizables y consumibles En general, los procesos usan ambos tipos de recursos No existe una solución general eficiente. En esta unidad solo se tratarán los reutilizables. Ejemplo de interbloqueo utilizando ambos tipos de recursos:

9 Interbloqueos en sistemas informáticos (7)
Recursos compartidos o exclusivos Los recursos compartidos los pueden usar varios procesos simultáneamente, por tanto no afectan a los interbloqueos. Pueden existir recursos con ambos tipos de uso En la solicitud del recurso debe indicarse el modo de uso deseado Si compartido: concedido si no se esta usando en modo exclusivo. Si exclusivo: concedido si no se esa usando. Por ejemplo: cerrojos en archivos. En esta unidad solo se tratarán los recursos exclusivos y reutilizables, es decir, aquellos recursos reutilizables y de uso exclusivo (también llamados reutilizables en serie).

10 Interbloqueos en sistemas informáticos (8)
Recursos con uno o múltiples ejemplares Modelo general: N unidades de cada recurso Solicitud de varias unidades de un recurso Ejemplos: sistemas con varias impresoras, la memoria, etc. Ejemplo: Memoria con 450KB disponibles.

11 Interbloqueos en sistemas informáticos (9)
Recursos expropiables o noexpropiables Algunas soluciones basadas en expropiación Salvar el estado del recurso y asignarlo a otro proceso. No siempre es posible eficientemente: p. ej. un plotter. Ejemplos de recursos expropiables Procesador Cambio de proceso = Expropiación Estado del procesador copiado a BCP. Memoria virtual Reemplazo = Expropiación Contenido de la página copiado a swap Ejemplo de interbloqueo P1 espera por el procesador y tiene asignado el floppy. P2 tiene asignado el procesador y solicita el floppy. ¿Cómo lo resuelve el SO?

12 Modelado del interbloqueo
Desde el punto de vista del interbloqueo se distinguen: Un conjunto de procesos o threads. Conjunto de recursos reutilizables y exclusivos (N unidades por recurso) Relaciones entre procesos y recursos Asignación: Número de unidades asignadas a cada proceso Pendientes: Número de unidades pedidas pero no asignadas por proceso. Primitivas genéricas: Solicitud (R1[U1], …, Rn[Un]) U1 unidades del recurso 1, U2 unidades del recurso 2, etc. Si todos disponibles se concederá Sin no, se bloquea pero sin reservar ningún recurso. Liberación (R1[U1], …, Rn[Un]) Puede causar desbloqueo de otros procesos Carácter dinámico del sistema Procesos y recursos aparecen y desaparecen

13 Modelado del interbloqueo (2)
Representación mediante un grafo de asignación: Nodos {N}: Procesos {P} + Recursos {R} Asociado a cada Ri un valor que indica el número de unidades existentes. Aristas {A}: Asignación (Ri→Pj): Pj tiene asignada 1 unidad de Ri Unidades asignadas de Rj ≤ unidades existentes Solicitud (Pi→Rj): Pj tiene pedida y no concedida 1 unidad de Ri Solicitud de recursos de Pi: ¿Todos disponibles? Sí: Por cada Rj tantas aristas Ri→Pj como unidades solicitadas No: Por cada Rj tantas Pi→Rj como unidades solicitadas Cuando disponibles se cambia a Ri→Pj Liberación de recursos de Pi: Eliminar aristas Ri→Pj correspondientes

14 Modelado del interbloqueo (3)
Ejemplo de representación con un grafo y múltiples unidades por recurso Ejecución de 3 procesos con 3 recursos R1(2), R2(3) y R3(2) 1. P1: Solicita(R1[2]) → P1 solicita 2 unidades de R1 2. P2: Solicita(R2[1]) 3. P2: Solicita(R1[1]) SE BLOQUEA P1 P2 P3 4. P3: Solicita(R2[1]) 5. P3: Solicita(R2[1]) 6. P1: Solicita(R2[1], R3[2]) SE BLOQUEA Grafo resultante N={P1,P2,P3,R1(2),R2(3),R2(2)} A={ R1→P1, R1→P1, R2→P2, P2→R1, R2→P3, R2→P3, P1→R2, P1→R3, R1 R2 R3 P1→R3}

15 Modelado del interbloqueo (4)
Ejemplo de representación con un grafo y una unidad por recurso Ejecución de 4 procesos con 3 recursos R1(1), R2(1) y R3(1) 1. P1: Solicita(R1) 2. P2: Solicita(R2) P1 3. P2: Solicita(R1) SE BLOQUEA P2 P3 P4 4. P3: Solicita(R2) SE BLOQUEA 5. P4: Solicita(R3) 6. P1: Solicita(R2) SE BLOQUEA Grafo resultante N={P1,P2,P3,P3,R1(1),R2(1),R2(1)} A={ R1→P1, R2→P2, P2→R1, P3→R2, R3→P4, P1→R2} R1 R2 R3

16 Modelado del interbloqueo (5)
Representación matricial Se utiliza una matriz de solicitud S, una matriz de asignación A y un vector E de recursos existentes en el sistema. Siendo p el número de procesos y r el de recursos se tiene que: A es de tamaño p x r, donde A[i,j] especifica cuántas unidades del recurso j están asignadas al proceso i. S es de tamaño p x r, donde S[i,j] especifica cuántas unidades del recurso j está esperando el proceso i. E es de tamaño r, donde E[i] especifica cuántas unidades del recurso i existen. Solicitud de recursos de Pi. ¿Todos disponibles? Sí: Por cada Rj, A[i,j] = A[i,j] + Uj (Unidades solicitadas de Rj) No: Por cada Rj, S[i,j] = S[i,j] + Uj Cuando disponibles se resta Uj de S[i,j] y se suma a A[i,j] Liberación de recursos de Pi Por cada Rj, A[i,j] = A[i,j] - Uj

17 Modelado del interbloqueo (6)
Ejemplo de representación matricial y múltiples unidades por recurso. Ejecución de 3 procesos con 3 recursos R1(2), R2(3) y R3(2) 1. P1: Solicita(R1[2]) → P1 solicita 2 unidades de R1 2. P2: Solicita(R2[1]) 3. P2: Solicita(R1[1]) SE BLOQUEA 4. P3: Solicita(R2[1]) 5. P3: Solicita(R2[1]) 6. P1: Solicita(R2[1], R3[2]) SE BLOQUEA Matrices resultantes 2 1 2 A= 1 S= 1 E= 2 3 2 D= 2 2 1 3 2 2 1 3x3 3x3

18 Modelado del interbloqueo (7)
Ejemplo de representación matricial y una unidad por recurso. Ejecución de 4 procesos con 3 recursos R1(1), R2(1) y R3(1) 1. P1: Solicita(R1) 2. P2: Solicita(R2) 3. P2: Solicita(R1) SE BLOQUEA 4. P3: Solicita(R2) SE BLOQUEA 5. P4: Solicita(R3) 6. P1: Solicita(R2) SE BLOQUEA Matrices resultantes 1 1 1 1 A= S= E= 1 1 1 D= 1 1 1 1 1 4x3 4x3

19 Definición y caracterización del interbloqueo
Conjunto de procesos tal que cada uno está esperando un recurso que sólo puede liberar (generar, si consumibles) otro proceso del conjunto. Condiciones para el interbloqueo (Coffman) Exclusión mutua. Recursos de uso exclusivo. Retención y espera. Mientras el proceso espera por recursos pedidos mantiene los ya asignados. Sin expropiación. No se expropian recursos asignados. Espera circular. Existe lista circular de procesos tal que cada proceso espera por recurso que tiene siguiente proceso. Las condiciones anteriores son necesarias pero no suficientes, sin embargo, para que interbloqueo exista tienen que cumplirse.

20 Definición y caracterización del interbloqueo (2)
Condición necesaria y suficiente para el interbloqueo. Idea base: Visión “optimista” del estado actual. Proceso no bloqueado debería devolver recursos en el futuro. Recursos liberados desbloquearían otros procesos. Esos procesos desbloqueados liberarían recursos desbloqueando a otros procesos, y así sucesivamente. Reducción del sistema por proceso P Si se pueden satisfacer necesidades de P con recursos disponibles se obtiene un nuevo estado hipotético donde P ha liberado todos sus recursos. Condición necesaria y suficiente Sí no existe una secuencia de reducciones desde el estado actual que incluya a todos los procesos entonces existe un interbloqueo. Los procesos involucrados en el interbloqueo serán aquellos que no estén involucrados en una secuencia de reducción.

21 Definición y caracterización del interbloqueo (3)
¿Es posible reducir los siguientes casos? Caso 1 Caso 2 P1 P2 P3 P1 P2 P3 P4 R1 R2 R3 R1 R2 R3

22 Tratamiento del interbloqueo
Las técnicas para tratar el interbloqueo se pueden clasificar en tres: Detección y recuperación. Dejar que se produzca, detectarlo y recuperarse del mismo. El coste del algoritmo + perdida del trabajo realizado afecta el rendimiento del sistema. Prevención. Asegura que no ocurra fijando reglas para pedir recursos. La aplicación de las reglas conlleva a una infrautilización de los recursos ya que se deben pedir antes de utilizarlos. Predicción. Asegura que no ocurre basándose en necesidades futuras de los procesos. No es fácil deducir el futuro. La aplicación de algoritmos de predicción implica coste de rendimiento y también infrautilización de los recursos. Ignorar el problema. Utilizada por la mayoría de los SO Dada la baja probabilidad de que ocurra y el coste que conlleva evitarlo.

23 Detección y recuperación del interbloqueo
Como su nombre lo indica, consta de dos fases: Fase de detección Se debe ejecutar un algoritmo que determine si el estado actual del sistema está libre de interbloqueos y que, en caso de que no lo esté, identifique que procesos están involucrados. Fase de recuperación Una vez detectado el interbloqueo, se debe aplicar una acción que lo elimine. Este algoritmo decide que procesos elimina.

24 Detección y recuperación del interbloqueo (2)
Algoritmo de detección para una representación mediante un grafo. S = Ø; /*Secuencia de reducción. Inicialmente vacía*/ D = {Conjunto de procesos desbloqueados y no incluidos en S}; Mientras (D != Ø){ /*Se puede reducir por cualquier proceso de D*/ Pi = primer elemento de D; Reducir grafo por Pi; añadir Pi a S y eliminarlo de D; Determinar qué procesos se desbloquean por la reducción y añadir a D; } Si (S == P) /*La secuencia contiene todos los procesos del sistema*/ No hay interbloqueo Si no Los procesos en el conjunto P-S están en un interbloqueo

25 Detección y recuperación del interbloqueo (3)
Ejemplo: N = {P1, P2, P3, P4, R1(1), R2(1), R3(1)} A = {R1→P1, R2→P2, P2→R1, P3→R2, R3→P4, P1→R2} Estado inicial S = Ø y D = {P4} Reducción del grafo por P4. El grafo reducido resultante es: A = {R1→P1, R2→P2, P2→R1, P3→R2,P1→R2} Se añade el proceso a la secuencia de reducción S = {P4} Como no se desbloquea ningún proceso, D está vacío por lo que termina el ciclo. Como S no incluye a todos los procesos, en el sistema hay un interbloqueo que afecta a los procesos del sistema que no están en S: P1, P2, P3.

26 Detección y recuperación del interbloqueo (4)
Algoritmo de detección para una representación matricial.

27 Detección y recuperación del interbloqueo (5)
Ejemplo:

28 Detección y recuperación del interbloqueo (6)
Activación del algoritmo de detección Frecuencia con que se ejecuta El algoritmo tiene un costo, sin embargo cuanto antes se detecte mejor. Supervisión continua Por cada petición que no puede satisfacerse Puede tener coste demasiado alto Supervisión periódica Guiada por tiempo y/o detección de síntomas Ej. Alto grado de multiprogramación .

29 Detección y recuperación del interbloqueo (7)
Una vez detectado hay que eliminarlo Seleccionar sucesivamente procesos involucrados quitándoles sus recursos hasta eliminar el interbloqueo. Alternativas “Retroceder en el tiempo”. Requiere SO con puntos de recuperación. Abortar el proceso perdiendo todo su trabajo realizado Criterio de selección de procesos basado en: Prioridad, Número de recursos asignados, Tiempo de ejecución, etc.

30 Prevención del interbloqueo
Se trata de asegurar que nunca se pueden producir interbloqueos. Con evitar una de las cuatro condiciones que provocan los interbloqueos basta para asegurar que no ocurrirá. La “exclusión mutua” y “sin expropiación” son condiciones rígidas y dependen del carácter intrínseco de los recursos. La “retención y espera” así como la “espera circular” son más apropiadas para plantear algoritmos de prevención.

31 Prevención del interbloqueo (2)
Retención y espera Una primera estrategia consistiría en hacer que cada programa solicite al principio de su ejecución y de forma simultánea todos los recursos que va a necesitar. Una segunda estrategia sería que un proceso solo puede solicitar recursos si no tiene ninguno asignado. Y deberá pedir simultáneamente solo aquellos cuyo uso se traslape en el tiempo. Ambas estrategias provocan infrautilización de los recursos.

32 Prevención del interbloqueo (3)
Espera circular Establece un orden total de los recursos del sistema según el uso más frecuente. Restricción: Proceso solo puede pedir recursos en orden. Conlleva infrautilización Para el ejemplo anterior: Si A < B < C < D → El proceso pide justo cuando lo necesita. Si A > B > C > D → El proceso pide todo en t1

33 Predicción del interbloqueo
Existe un “punto de no retorno” a partir del cual el interbloqueo es inevitable. Ejemplo: Si P1 y P2 obtienen su primer recurso habrá interbloqueo. Se evita conociendo a priori el plan de peticiones de cada proceso. No se concede una de esas peticiones aunque existan recursos disponibles. El sistema siempre debe estar en un “estado seguro”.

34 Predicción del interbloqueo (2)
Concepto de “estado seguro” Aunque todos los procesos solicitasen en este momento sus necesidades máximas, existe un orden secuencial de ejecución tal que cada proceso pueda obtenerlas. Estrategia similar a la reducción del sistema, solo que se utilizan necesidades máximas en lugar de peticiones actuales. Como no se conoce la información sobre la utilización real de los recursos pueden considerarse inseguros estados que nunca provocarían interbloqueo. Ejemplo:

35 Predicción del interbloqueo (3)
El algoritmo del banquero de Dijkstra es el algoritmo de predicción más conocido y utiliza la representación matricial. Requiere una matriz más, llamada de necesidad, N de p x r: N[i,j] almacena cuantas unidades adicionales de Rj puede necesitar Pi. Es la diferencia entre necesidades máximas y unidades asignadas. Refleja tanto solicitudes no concedidas como futuras La matriz S queda inmersa en N y no la utiliza el algoritmo Inicialmente tiene las necesidades máximas de cada proceso. Solicitud de recursos de Pi: ¿Todos disponibles? Sí: Por cada Rj, A[i,j] = A[i,j] + Uj y N[i,j] = N[i,j] – Uj No: Sólo se actualiza S (Que no se usa en el algoritmo) Cuando disponibles A[i,j] = A[i,j] + Uj y N[i,j] = N[i,j] – Uj Liberación de recursos de Pi Por cada Rj, A[i,j] = A[i,j] - Uj y N[i,j] = N[i,j] + Uj

36 Predicción del interbloqueo (4)
Algoritmo del banquero Determina si es un “estado seguro”

37 Predicción del interbloqueo (5)
Estrategia de predicción Se calcula un nuevo estado provisional transformando A y N Se aplica el algoritmo del banquero sobre el nuevo estado Si es seguro, se asignan recursos y el nuevo estado se hace permanente Si no, se bloquea el proceso sin asignarle los recursos y se restaura el estado previo. Ejemplo del algoritmo del banquero: Estado actual del sistema (es seguro):

38 Predicción del interbloqueo (6)
Continuación del ejemplo del algoritmo del banquero …

39 Predicción del interbloqueo (7)
Continuación del ejemplo del algoritmo del banquero …

40 Predicción del interbloqueo (8)
Limitaciones de estrategias de predicción Conocimiento a priori de las necesidades máximas Difícil de obtener Basado en el peor caso posible Necesidades máximas no expresan uso real de los recursos Infrautilización de los recursos Se niega el uso de recursos aunque esté libre

41 Tratamiento del interbloqueo en los SO
La mayoría ignora el problema o no da una solución general Se hace distinción entre dos tipos de recursos Recursos internos (propios del SO) Usados por un proceso en modo sistema Uso restringido a ejecución de una llamada Ej. Semáforo interno para acceder a tiempo de proceso Un interbloqueo puede causar el colapso total del sistema Recursos de usuario Usados por un proceso en modo usuario Uso durante tiempo impredecible Ej. Semáforo de aplicación El interbloqueo afecta únicamente a los procesos y recursos involucrados.

42 Tratamiento del interbloqueo en los SO (2)
Tratamiento de los recursos internos El código del SO es algo que apenas se modifica Se puede estudiar a priori el uso de los recursos Si se da un Interbloqueo existe un error de programación del SO El Uso de estrategias de prevención es adecuado Tratamiento de los recursos de usuario Código de procesos que usan recursos es impredecible No hay tratamiento general para todos los recursos La prevención conlleva infrautilización La predicción tiene la dificultad de conocer a priori La detección y recuperación provoca demasiada sobre carga


Descargar ppt "Unidad 4 Interbloqueos (Dead Lock)"

Presentaciones similares


Anuncios Google