Sistemas Operativos Tema 9: Interbloqueo.

Slides:



Advertisements
Presentaciones similares
TEMA 1 Introducción a la Programación Concurrente
Advertisements

I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
EQUIPO ·# 3 SISTEMAS OPERATIVOS
Administración de procesos y del procesador.
Confiabilidad en Bases de Datos Distribuidas
Unidad 6 Interbloqueos (Dead Lock)
Sistemas de Razonamiento Lógico
Contenido Introducción Tipos de recursos Modelo del sistema
PROGRAMACION DE ESTRUCTURAS DE DATOS
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Inter bloqueo DeadLock.
EMISION MULTIPLE DE INSTRUCCIONES
Tema 3. Optimización de Código
Deadlocks Caracterización de deadlock Métodos para manejar deadlock Prevenir, Predecir, detección Recuperación de deadlock Emely Arráiz Ene-Mar 08.
UNIDAD I Conceptos Básicos.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
AED I. Estructuras de Datos.
GRAFOS HUGO ARAYA CARRASCO.
Concurrencia: interbloqueo e inanición
Bloqueos Mortales Cecilia Hernández Bloqueos Mortales Definición Un proceso/hebra esta bloqueada cuando esta esperando por un evento que nunca ocurrirá.
Deadlocks Abrazo Mortal Bloqueos mutuos
Temas importantes para el desarrollo de la segunda parte del TPE
Unidad 4 Interbloqueos (Dead Lock)
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Teoría de lenguajes y compiladores
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
Estructura de Datos y Algoritmos
Sistemas Concurrentes: programación concurrente
Material de apoyo Unidad 4 Estructura de datos
Aplicación de estructuras de datos
Sebastián Sánchez Prieto
Planificación de Procesos
Planificación y Gestión de procesos
Capítulo 7 Gestión de memoria.
Backtracking 1. Método general. 2. Análisis de tiempos de ejecución.
Gestión de procesos Sistemas Operativos Edwin Morales
El interbloqueo Situación en la que se encuentran un conjunto de procesos, (al menos dos), tal que cada proceso del conjunto espera la ocurrencia de un.
Parte II. Algorítmica. 5. Backtracking. 1. Análisis de algoritmos.
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Una introducción a la computación evolutiva
Introducción a los SOs.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
PROBLEMAS DE SATISFACCIÓN DE RESTRICCIONES
Parte I. Estructuras de Datos.
Sabemos reconocerlas, y calcularlas como soluciones de sistemas de ecuaciones, o de desigualdades Buscamos métodos de cálculo generales y eficientes Problemas.
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
SISTEMAS OPERATIVOS DEADLOCK ABRAZO MORTAL BLOQUEO MUTUO.
ABRAZO MORTAL - DEADLOCK - INTERBLOQUEO
Punteros Recomendado: 1. Nivelación Funciones
Estructura de los Sistemas Operativos
Teoría de Sistemas Operativos Sincronización Procesos
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
1 FUNDAMENTOS DE BASES DE DATOS SISTEMA GESTOR DE BASES DE DATOS (SGBD) Consiste en una colección de datos interrelacionados y un conjunto de programas.
Algoritmos y estructura de datos en I.O.
La estrategia de prevención del interbloqueo consiste, a grandes rasgos, en diseñar un sistema de manera que esté excluida, a priori, la posibilidad de.
BASE DE DATOS.
INTERRUPCIONES – ABRAZO MORTAL
Introducción a los TADs
Ciclo de Vida del Software
Matemáticas Discretas MISTI
MEMORIA DINÁMICA.
Tema 4: Planificación de Procesos
Clase II Estructuras dinámicas (TAD) Listas Enlazadas. ¿A que llamamos estructuras dinámicas? ¿Por qué son necesarias? Ventajas y Desventajas que tendremos.
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.
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
1 Tema 6: Concurrencia de Procesos Sistemas Operativos.
Ciclos condicionales y exactos Estructura de control de ciclos
Transcripción de la presentación:

Sistemas Operativos Tema 9: Interbloqueo

Í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

Í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

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.

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

Í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

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

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

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

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

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

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

Í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

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.

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

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.

Í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

+ 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

+ 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

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

+ 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

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

+ 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

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

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)

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

… 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

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

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?

+ 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

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

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

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’=

+ 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

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

+ 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

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?

+ 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

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?

Í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

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

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

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

¡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

Í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

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

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

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

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

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

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.

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=

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=

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’=

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