La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sistemas Operativos Unidad 6 Interbloqueos (Dead Lock)

Presentaciones similares


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

1 Sistemas Operativos Unidad 6 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. 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).

4 Interbloqueos en sistemas informáticos (2) 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?

5 Interbloqueos en sistemas informáticos (3) 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.

6 Interbloqueos en sistemas informáticos (4) 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).

7 Interbloqueos en sistemas informáticos (5) 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:

8 Interbloqueos en sistemas informáticos (6) 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).

9 Interbloqueos en sistemas informáticos (7) 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.

10 Interbloqueos en sistemas informáticos (8) 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?

11 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 (R 1 [U 1 ], …, R n [U n ]) 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 (R 1 [U 1 ], …, R n [U n ]) Puede causar desbloqueo de otros procesos Carácter dinámico del sistema Procesos y recursos aparecen y desaparecen

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

13 Modelado del interbloqueo (3) Ejemplo de representación con un grafo y múltiples unidades por recurso

14 Modelado del interbloqueo (4) Ejemplo de representación con un grafo y una unidade por recurso

15 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 P i. ¿Todos disponibles? Sí: Por cada R j, A[i,j] = A[i,j] + U j (Unidades solicitadas de R j ) No: Por cada R j, S[i,j] = S[i,j] + U j Cuando disponibles se resta U j de S[i,j] y se suma a A[i,j] Liberación de recursos de P i Por cada R j, A[i,j] = A[i,j] - U j

16 Modelado del interbloqueo (6) Ejemplo de representación matricial y múltiples unidades por recurso.

17 Modelado del interbloqueo (7) Ejemplo de representación matricial y una unidad por recurso. Cuatro procesos (P 1, P 2, P 3 y P 4 ) y tres recursos (R 1 (1), R 2 (1) y R 3 (1))

18 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 existe tienen que cumplirse.

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

20 Definición y caracterización del interbloqueo (3) ¿Es posible reducir los siguientes casos? Caso 1 Caso 2

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

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

23 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

24 Detección y recuperación del interbloqueo (3) Ejemplo: N = {P 1, P 2, P 3, P 4, R 1 (1), R 2 (1), R 3 (1)} A = {R 1 P 1, R 2 P 2, P 2 R 1, P 3 R 2, R 3 P 4, P 1 R 2 } Estado inicial S = Ø y D = {P 4 } Reducción del grafo por P4. El grafo reducido resultante es: A = {R 1 P 1, R 2 P 2, P 2 R 1, P 3 R 2,P 1 R 2 } Se añade el proceso a la secuencia de reducción S = {P 4 } 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: P 1, P 2, P 3.

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

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

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

28 Detección y recuperación del interbloqueo (7) Recuperación del interbloqueo 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.

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

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

31 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 t 1

32 Predicción del interbloqueo Existe un punto de no retorno a partir del cual el interbloqueo es inevitable. Ejemplo: Si P 1 y P 2 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.

33 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:

34 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 R j puede necesitar P i. 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 P i : ¿Todos disponibles? Sí: Por cada R j, A[i,j] = A[i,j] + U j y N[i,j] = N[i,j] – U j No: Sólo se actualiza S (Que no se usa en el algoritmo) Cuando disponibles A[i,j] = A[i,j] + U j y N[i,j] = N[i,j] – U j Liberación de recursos de Pi Por cada R j, A[i,j] = A[i,j] - U j y N[i,j] = N[i,j] + U j

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

36 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):

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

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

39 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

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

41 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 "Sistemas Operativos Unidad 6 Interbloqueos (Dead Lock)"

Presentaciones similares


Anuncios Google