La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sistemas Operativos Tema 9: Interbloqueo.

Presentaciones similares


Presentación del tema: "Sistemas Operativos Tema 9: Interbloqueo."— Transcripción de la presentación:

1 Sistemas Operativos Tema 9: Interbloqueo

2 Índice: Formación del Interbloqueo Modelado del Interbloqueo
Estrategias Técnicas de detección y recuperación Técnicas de prevención Técnicas de predicción Tema 9: Interbloqueo 2

3 Índice: Formación del Interbloqueo Modelado del Interbloqueo
Estrategias Técnicas de detección y recuperación Técnicas de prevención Técnicas de predicción Tema 9: Interbloqueo 3

4 1. Formación del Interbloqueo
Tema 9: Interbloqueo Informalmente: espera cíclica (infinita) entre dos o más procesos Cada proceso espera conseguir un recurso asignado a otro. Casos muy sútiles: uno de los recursos puede ser el propio procesador (problemas de la espera ocupada, Tema 6) Pueden intervenir un número arbitrario de procesos (filósofos comensales, Tema 7). Caso especial del recurso: aquel del que existen múltiples instancias equivalentes. Se solicitan instancias del tipo del recurso Se asignan instancias concretas. Ejemplos: memoria, bloques de disco, dispositivos, etc. Ejemplo de dispositivo: una impresora.

5 1. Formación del Interbloqueo
Tema 9: Interbloqueo Secuencia de uso de recurso compartido: Solicitar recurso / Utilizar recurso / Liberar recurso Formas de petición de recursos: Servicios generales: getResource(T)… Servicios específicos: malloc(), socket() apertura de archivos o dispositivos Cierre de semáforo o cualquier mecanismo de exclusión mutua que proteja al recurso: down(s), receive(b, msg), etc. Si recurso solicitado no está libre: Código de error Espera

6 Índice: Formación del Interbloqueo Modelado del Interbloqueo
Estrategias Técnicas de detección y recuperación Técnicas de prevención Técnicas de predicción Tema 9: Interbloqueo 6

7 2. Modelado del Interbloqueo
Tema 9: Interbloqueo Definición formal: Un conjunto P de procesos está interbloqueado si y sólo si: Cada proceso Pi  P está bloqueado en espera de un evento que sólo puede ser provocado por otro proceso Pj  P Grafos de relación proceso/recurso: Dos tipos de vértice: procesos y recursos Significado de arista: depende de su sentido Hacer notar la diferencia entre interbloqueo y espera en cadena: si uno de los procesos está esperando a algo que no depende de los demás, no es un interbloqueo, si una espera en cadena. Si quieres, puedes contar aquí la utilidad de los grafos de relación proceso/recurso, que es que habrá un interbloqueo si y sólo si en el grafo se produce un ciclo. R1 R1 asignado a P P espera R2 R2 P

8 2. Modelado del Interbloqueo
Tema 9: Interbloqueo Condiciones de Coffman: Exclusión mutua: para que se produzcan interbloqueos es necesario que los recursos se asignen en exclusividad. Retención y espera: para que se produzcan interbloqueos es necesario que un proceso con recursos asignados pueda solicitar nuevos recursos, y esperar manteniendo los recursos que tenía asignados si los nuevos están ocupados. R1 P1 R2 P2 No apropiación: un recurso ocupado sólo puede ser liberado por el proceso que lo tiene asignado. P4 R3 P3

9 2. Modelado del Interbloqueo
Tema 9: Interbloqueo Condiciones de Coffman (cont.): Espera circular: para que se produzca un interbloqueo es necesario y suficiente que exista un conjunto {P} de procesos y un conjunto {R} de recursos tal que P1 espera a R1 que está asignado a P2, el cual espera a R2 que está asignado a P3, etc. y Pn espera a Rn que está asignado a P1: P1 R1 P2 R2 Pn Rn

10 2. Modelado del Interbloqueo
Tema 9: Interbloqueo Aleatoriedad del interbloqueo pedir (R); pedir (S); … liberar (R); liberar (S); … A pedir (S); pedir (T); … liberar (S); liberar (T); … B pedir (T); pedir (R); … liberar (T); liberar (R); … C Un caso que conduce a interbloqueo… A R B S C T

11 2. Modelado del Interbloqueo
Tema 9: Interbloqueo Aleatoriedad del interbloqueo pedir (R); pedir (S); … liberar (R); liberar (S); … A pedir (S); pedir (T); … liberar (S); liberar (T); … B pedir (T); pedir (R); … liberar (T); liberar (R); … C Y los mismos procesos, que no se interbloquean (simplemente, el entrelazado es pedir(R), pedir(T), pedir(S)… a partir de ahí, lo que venga… A R B S C T

12 2. Modelado del Interbloqueo
Tema 9: Interbloqueo Aleatoriedad del interbloqueo (Conclusiones) La ocurrencia de un interbloqueo depende de: Que se den las condiciones necesarias para que ocurran (determinista) Del entrelazado de las operaciones de asignación y liberación (no determinista).

13 Índice: Formación del Interbloqueo Modelado del Interbloqueo
Estrategias Técnicas de detección y recuperación Técnicas de prevención Técnicas de predicción Tema 9: Interbloqueo 13

14 3. Estrategias Tema 9: Interbloqueo Omisión Consecuencia de interbloqueo: procesos que se cuelgan. ¿Admisible? Algoritmos que tratan con interbloqueo pueden resultar costosos y a pesar de ello no dar óptimos resultados.

15 3. Estrategias Detección y recuperación
Tema 9: Interbloqueo Detección y recuperación Dejemos que los procesos se ejecuten libremente. Si se interbloquean, lo detectaremos y lo “solucionaremos”. La solución es costosa: O en recursos necesarios para implementarla O implica pérdida de trabajo realizado Prevención Cuatro condiciones necesarias para la formación de un interbloqueo ¡Evitemos en todo momento que al menos una se cumpla! Restricciones demasiado severas para su uso cotidiano

16 3. Estrategias Predicción
Tema 9: Interbloqueo Predicción La ocurrencia de un interbloqueo depende del orden en que se entrelazan las operaciones de asignación Si se realiza un cuidadoso análisis de las asignaciones realizadas, podría forzarse un entrelazado que no produzca interbloqueo Para ello: retener asignaciones “peligrosas” Es necesario tener conocimiento de antemano de las intenciones de uso de recursos por parte de los procesos Puede obligar a esperar a un proceso sólo por el riesgo de que una asignación pudiese producir interbloqueo.

17 Índice: Formación del Interbloqueo Modelado del Interbloqueo
Estrategias Técnicas de detección y recuperación Técnicas de prevención Técnicas de predicción Tema 9: Interbloqueo 17

18 + 4. Detección y recuperación Reducción del grafo Inspección del grafo
Tema 9: Interbloqueo Reducción del grafo Inspección del grafo Matrices binarias de relación Detección matricial + Eliminación Puntos de sincronismo Apropiación temporal

19 + 4. Detección y recuperación Reducción del grafo Inspección del grafo
Tema 9: Interbloqueo Reducción del grafo Inspección del grafo Matrices binarias de relación Detección matricial + Eliminación Puntos de sincronismo Apropiación temporal

20 4.1 Reducción del grafo Tema 9: Interbloqueo Procedimiento iterativo que aísla un conjunto cerrado de procesos que se esperan entre sí: Paso 1: Eliminar (o marcar) todos los procesos que no están esperando a ningún recurso Paso 2: Eliminar (o marcar) todos los procesos a la espera de algún recurso asignado a procesos eliminados en paso 1 Repetir hasta eliminar todos los procesos (no hay ciclos) o hasta que no se elimine ninguno (los que quedan forman uno o varios ciclos) P1 P2 R1 P4 P3 R2 P5

21 + 4. Detección y recuperación Reducción del grafo Inspección del grafo
Tema 9: Interbloqueo Reducción del grafo Inspección del grafo Matrices binarias de relación Detección matricial + Eliminación Puntos de sincronismo Apropiación temporal

22 4.2 Inspección del grafo Grafo sin bucles = conjunto de árboles
Tema 9: Interbloqueo Grafo sin bucles = conjunto de árboles Al colocar una arista → recorrido en profundidad Si se vuelve a visitar el nodo de partida: ¡ciclo! Algoritmos de detección: se lanzan cuando se solicita un recurso ocupado Sólo hay que lanzar búsqueda al colocar una arista de espera (de proceso a recurso) P1 P2 R1 P4 P3 R2 P5

23 + 4. Detección y recuperación Reducción del grafo Inspección del grafo
Tema 9: Interbloqueo Reducción del grafo Inspección del grafo Matrices binarias de relación Detección matricial + Eliminación Puntos de sincronismo Apropiación temporal

24 R= rij = 1 ↔ Pi R Qj 4.3 Matrices binarias de relación Q1 Q2 Q3 Q4 P1
Tema 9: Interbloqueo Matriz binaria de relación: Matriz binaria que representa una relación R entre dos conjuntos: Q1 Q2 Q3 Q4 P1 1 P2 P3 R= rij = 1 ↔ Pi R Qj

25 4.3 Matrices binarias de relación
Tema 9: Interbloqueo Propiedades de matrices binarias de relación: Sea R la matriz de una relación R: A→B Sea S la matriz de una relación S: B→C R x S es la matriz de la composición R◦S: A→C Matrices binarias se multiplican como matrices númericas, pero: Operación Y lógica en lugar de multiplicación Operación O lógica en lugar de suma Sea R la matriz de una relación R: A→B Sea S la matriz de una relación S: B→C T = R + S es la matriz binaria de la relación R  S: Tij = 1 ↔ (ai R bj)  (ai S bj)

26 4.3 Matrices binarias de relación
Tema 9: Interbloqueo W: P→R Matriz de espera: Wij = 1 ↔ A: R→P Matriz de asignaciones: Aij = 1 ↔ Pi Rj Ri Pj T: WxA Matriz de procesos en espera de procesos Wij = 1 ↔ Pi Pj Tii = 1 ↔ Pi

27 … 4.3 Matrices binarias de relación T2= TxT T2ii = 1 ↔ Tnii = 1 ↔
Tema 9: Interbloqueo T2= TxT T2ij = 1 ↔ Pi Pj T2ii = 1 ↔ Pi Tnii = 1 ↔ Pi Cierre transitivo: Cii = 1 ↔ hay al menos un ciclo de longitud entre 1 y n

28 4.3 Matrices binarias de relación
Tema 9: Interbloqueo Metodología: Construir W y A Construir T=WxA Calcular cierre transitivo de T (algoritmo de Warshall) Analizar resultado P1 P2 P3 P4 P5 P6 P7 P8 P9 1 Los procesos que tienen un 1 en su diagonal principal forman parte de un ciclo de interbloqueo P1 y P3 forma parte de un mismo ciclo, pues tienen la misma configuración de 0’s y 1’s. A pesar de tener la misma configuración, P2 no está interbloqueado pues no tiene un 1 en la diagonal principal De la fila de P8 se deduce que espera a P7 y a P9 P8 P9 P2 P7 P1 P3 P6

29 4.3 Matrices binarias de relación
Tema 9: Interbloqueo Ventajas: Método potente Eficiente Inconvenientes: ¿Qué pasa con aquellos recursos de los cuales hay múltiples instancias equivalentes?

30 + 4. Detección y recuperación Reducción del grafo Inspección del grafo
Tema 9: Interbloqueo Reducción del grafo Inspección del grafo Matrices binarias de relación Detección matricial + Eliminación Puntos de sincronismo Apropiación temporal

31 4.4 Detección Matricial Tema 9: Interbloqueo Método matricial que trata aquellos casos en los que hay múltiples instancias equivalentes de un mismo tipo de recurso Aísla grupos de procesos que no pueden proseguir la ejecución porque no pueden ver satisfechas sus peticiones pendientes Estado del sistema expresado en notación matricial: A (asignaciones): aij= nº de instancias de recurso j asignado a proceso i. S (peticiones pendientes): sij = nº de instancias del recurso j pendientes de asignar a proceso i D (recursos disponibles): di = nº de instancias del recurso i disponibles E (recursos existentes): ei = nº total de instancias de recurso i

32 4.4 Detección Matricial Ante una petición, actualizar la matriz S
Tema 9: Interbloqueo Ante una petición, actualizar la matriz S Método iterativo: Marcar procesos cuyas peticiones puedan satisfacerse con el actual vector de disponibles Sumar al vector de disponibles los recursos asignados a los procesos marcados Si todos los procesos marcados: no hay interbloqueo Si en una iteración no se marcan procesos: los procesos que quedan están interbloqueados

33 4.4 Detección Matricial A= S= D= D’’= D’= R1 R2 R3 R4 P1 1 P2 2 P3 R1
Tema 9: Interbloqueo R1 R2 R3 R4 P1 1 P2 2 P3 R1 R2 R3 R4 P1 2 1 P2 P3 A= S= Dí que suponemos que se ha producido una petición, y que el estado al que nos ha llevado es este que pintamos aquí Recuerda que esto se va a parecer mucho a un algoritmo que se emplea en el criterio del banquero Este ejemplo ilustra bien el algortimo a seguir, pero no su utilidad. R1 R2 R3 R4 2 1 R1 R2 R3 R4 4 2 1 D= D’’= R1 R2 R3 R4 2 D’=

34 + 4. Detección y recuperación Reducción del grafo Inspección del grafo
Tema 9: Interbloqueo Reducción del grafo Inspección del grafo Matrices binarias de relación Detección matricial + Eliminación Puntos de sincronismo Apropiación temporal

35 4.5 Eliminación Tema 9: Interbloqueo Abortamos uno de los procesos del ciclo: sus recursos quedan libres y pueden ser reasignados. P2 P1 R1 P3 R2 P4 R3 Inconvenientes: ¿Cual proceso abortamos? Trabajo realizado por proceso abortado se pierde

36 + 4. Detección y recuperación Reducción del grafo Inspección del grafo
Tema 9: Interbloqueo Reducción del grafo Inspección del grafo Matrices binarias de relación Detección matricial + Eliminación Puntos de sincronismo Apropiación temporal

37 4.6 Puntos de sincronismo Tema 9: Interbloqueo Punto de sincronismo= almacenamiento en disco del estado de un proceso: Estado CPU Espacio de memoria Recursos asignados y estados de dichos recursos Recuerda que un punto de sincronismo es similar a lo que hacen los portátiles para hibernar ¡Guardemos un punto de sincronismo antes de abortar proceso! Así posteriormente se podrá “resucitar” y no perder su trabajo Inconvenientes: Espacio en disco requerido para punto de sincronismo Tiempo para crear y restaurar punto de sincronismo Estado del proceso externo al sistema (conexiones a BD…) ¿Permitirán los recursos almacenar y recuperar su estado?

38 + 4. Detección y recuperación Reducción del grafo Inspección del grafo
Tema 9: Interbloqueo Reducción del grafo Inspección del grafo Matrices binarias de relación Detección matricial + Eliminación Puntos de sincronismo Apropiación temporal

39 4.7 Apropiación temporal Los recursos también forman parte del ciclo
Tema 9: Interbloqueo Los recursos también forman parte del ciclo Si se pudiese salvar y recuperar el estado de un recurso, ¿por que no… P2 En realidad no es necesario bloquear al proceso al que se le apropia el recurso, pues ya está bloqueado (interbloqueado, para más señas), pero hay que asegurarse de que no se desbloquea al romperse el interbloqueo. P1 R1 P3 R2 P4 R3 Inconvenientes: ¿Y si los recursos no permiten la apropiación temporal?

40 Índice: Formación del Interbloqueo Modelado del Interbloqueo
Estrategias Técnicas de detección y recuperación Técnicas de prevención Técnicas de predicción Tema 9: Interbloqueo 40

41 5. Técnicas de Prevención
Tema 9: Interbloqueo Coffman propone cuatro condiciones necesarias para la formación de interbloqueo ¡Si conseguimos que siempre al menos una no se cumpla,no habrán interbloqueos! Supresión de la exclusión mutua En lugar de acceder a los recursos mediante sincronización, emplear comunicación Dispositivos: técnica SPOOL (Simultaneous Peripheral Operation On-Line) Proceso spooler Proceso

42 5. Técnicas de Prevención
Tema 9: Interbloqueo Supresión de la exclusión mutua (cont.) Inconvenientes: No siempre tiene por qué ser posible Puede cambiar el problema de sitio Lo de cambiar el problema de sitio se puede referir, por ejemplo, al espacio de disco para la técnica de SPOOL El aplazamiento indefinido se puede sufrir por parte de aquellos procesos que usan más recursos, que siempre cuando no le falta uno le falta otro Mal aprovechamiento porque obliga a solicitar recursos posiblemente antes de que haga falta Havender incluso propone que los procesos soliciten todos los recursos necesarios al comienzo de la ejecución Supresión de retención y espera Solicitar todos los recursos simultáneamente (1ª estrategia de Havender) Si alguno no disponible, se espera hasta que todos libres Inconvenientes: Posibilidad de aplazamiento indefinido Mal aprovechamiento de recursos Atenta contra el carácter dinámico de los procesos

43 5. Técnicas de Prevención
Tema 9: Interbloqueo Supresión de la no apropiación Si un proceso con recursos asignados solicita un recurso que no está disponible, pierde los recursos que tuviera asignados (2ª estrategia de Havender) También impide la retención y espera Inconvenientes: La pérdida de los recursos puede ocasionar pérdida de trabajo Sobrecarga añadida: pedir, perder, volver a pedir, perder, … Posibilidad de aplazamiento indefinido

44 ¡Ahí va! Pues también me hace falta R5
5. Técnicas de Prevención Tema 9: Interbloqueo Supresión de la espera circular Establecer relación de orden entre los recursos. Todos los procesos que necesiten más de un recurso, los solicitan conforme a dicho orden (3ª estrategia de Havender) ¡Ahí va! Pues también me hace falta R5 Necesito R2, R3, R6, R8 y R9… P1 R1 R2 R3 R4 R5 R6 R7 R8 R9 Inconvenientes: Criterio de ordenación para todos los recursos de todo tipo Engorroso

45 Índice: Formación del Interbloqueo Modelado del Interbloqueo
Estrategias Técnicas de detección y recuperación Técnicas de prevención Técnicas de predicción Tema 9: Interbloqueo 45

46 Tanto P1 como P2 necesitan simultáneamente R1 y R2
6. Técnicas de Predicción Tema 9: Interbloqueo Si tuviéramos de antemano información sobre cómo los procesos van a usar los recursos, talvez podríamos forzar un entrelazado de las asignaciones que nunca llevase a interbloqueo R1 P1 P2 Tanto P1 como P2 necesitan simultáneamente R1 y R2 R2

47 6. Técnicas de Predicción
Tema 9: Interbloqueo Trayectorias de recursos Algoritmo del Banquero

48 6. Técnicas de Predicción
Tema 9: Interbloqueo Trayectorias de recursos Algoritmo del Banquero

49 6.1 Trayectorias de recursos
Tema 9: Interbloqueo Representación espacial del estado del sistema Implica conocimiento exacto del uso de los recursos Ejemplo para anteriores procesos P1 y P2 con recursos R1 y R2: t(P1) Cada eje representa el tiempo virtual de un proceso El estado conjunto de ambos procesos se representa por un punto que se mueve siempre en sentido positivo paralelo a cada eje (moverse hacia abajo o hacia la izquierda significaría que procesos P1 o P2 respectivamente ejecutan instrucciones “hacia atrás”) Necesitamos conocer de antemano el instante de tiempo (virtual) en que cada proceso pide y libera cada recurso Las regiones en que un recurso está asignado a dos procesos o más son prohibidas (violan la exclusión mutua) La zona marcada en línea gruesa no está prohibida, pero si el sistema entra en ese estado, está condenado al interbloqueo Solución: o pasar por debajo o por la izquierda de la zona prohibida En otras palabras: asignar primero los dos recursos o bien a P1 o bien a P2 Esto es una idea no implementable R2 R1 t (P2) R2 R1

50 6. Técnicas de Predicción
Tema 9: Interbloqueo Trayectorias de recursos Algoritmo del Banquero

51 6.2 Algoritmo del Banquero
Tema 9: Interbloqueo Algoritmo que recibe este nombre por asemejarse a la forma en que los bancos gestionan las cuentas a crédito Requiere conocer de antemano las necesidades máximas de recursos por parte de cada proceso. Suposición: cuando un proceso ha conseguido todos los recursos que necesita, los libera. Estado seguro: El estado del sistema es seguro si existe una secuencia de asignaciones y liberaciones de recursos que permita a todos y cada uno de los procesos alcanzar en algún momento sus necesidades máximas de recursos. Si sumanos las necesidades máximas de recursos por parte de los procesos, se excederán los recursos disponibles por parte del sistema: el truco está en que no todos los procesos pueden tener asignado simultáneamente todos los recursos simultáneamente, sino que los procesos piden recursos, hacen lo que tengan que hacer con ellos una vez que los han conseguido todos, y los devuelven, permitiendo a otros procesos hacer lo mismo. Esto es el mismo principio por el que se rigen los bancos, pues la suma de los saldos deudores máximos de las cuentas de créditos puede exceder los fondos de la entidad, pero no todos los clientes alcanzan el máximo simultáneamente.

52 6.2 Algoritmo del Banquero
Tema 9: Interbloqueo Ejemplo: Sea un sistema cuyo estado actual viene dado por las siguientes matrices: R1 R2 R3 R4 P1 2 1 P2 3 P3 P4 4 R1 R2 R3 R4 P1 P2 1 2 P3 3 P4 1 Advertencias: el estado que nos dan es seguro, no hay que hacer esa comprobación. Respuesta incorrecta habitual: “Sí, porque hay recursos con la que satisfacerla” Primer paso en esta misma diapositiva: actualizar estado M= A= R1 R2 R3 R4 2 1 En esta situación, proceso P1 solicita una instancia de recurso R2. ¿Se puede servir dicha petición? D=

53 6.2 Algoritmo del Banquero
Tema 9: Interbloqueo R1 R2 R3 R4 P1 2 1 P2 3 P3 P4 4 R1 R2 R3 R4 P1 1 P2 2 P3 3 P4 M= A= R1 R2 R3 R4 P1 2 1 P2 P3 3 P4 4 Z= Peticiones Pendientes = lo más que nos puede pedir cada proceso a partir de ahora. Z= M-A=

54 6.2 Algoritmo del Banquero
Tema 9: Interbloqueo ¿Es seguro este estado? R1 R2 R3 R4 P1 1 P2 2 P3 3 P4 R1 R2 R3 R4 P1 2 1 P2 P3 3 P4 4 Z= A= El algoritmo para ver si el estado es seguro es exactamente el mismo que el visto en la detección matricial de interbloqueo Comenta que si el resultado hubiese sido que el estado no es seguro, eso no significa que haya interbloqueo (error habitual) sino que no podemos garantizar que a partir del estado al que nos llevaría satisfacer la petición no pueda conducirnos en el futuro a un interbloqueo R1 R2 R3 R4 2 1 R1 R2 R3 R4 3 1 D= D’’= R1 R2 R3 R4 3 1 4 R1 R2 R3 R4 2 1 D’’’= D’=

55 6.2 Algoritmo del Banquero
Tema 9: Interbloqueo Inconvenientes: Es necesario tener conocimiento de antemano de necesidades de recursos por parte de proceso: poco realista. Puede forzar esperas que posiblemente hubiesen sido innecesarias


Descargar ppt "Sistemas Operativos Tema 9: Interbloqueo."

Presentaciones similares


Anuncios Google