INTERBLOQUEOS

Plan your Research & Development and track all outcomes

Get Started. It's Free
or sign up with your email address
INTERBLOQUEOS by Mind Map: INTERBLOQUEOS

1. RECURSOS Una clase principal de interbloqueos involucra a los recursos, los interbloqueos pueden ocurrir cuando a los procesos se les otorga acceso exclusivo a los dispositivos, registros de datos, archivos, etcétera.

1.1. Los interbloqueos pueden ocurrir en una variedad de situaciones, además de solicitar dispositivos de E/S dedicados.

1.2. Un recurso apropiativo es uno que se puede quitar al proceso que lo posee sin efectos dañinos.

1.3. Un recurso no apropiativo es uno que no se puede quitar a su propietario actual sin hacer que el cómputo falle.

2. Interbloqueo: Es el bloqueo permanente de un conjunto de procesos o hilos de ejecución en un sistema concurrente que compiten por recursos del sistema o bien se comunican entre ellos.

3. RECUPERACIÓN DE UN INTERBLOQUEO Suponga que nuestro algoritmo de detección de interbloqueos ha tenido éxito y detectó un interbloqueo. ¿Qué debemos hacer ahora? Se necesita alguna forma de recuperarse y hacer funcionar el sistema otra vez.

3.1. RECUPERACIÓN POR MEDIO DE APROPIACIÓN La habilidad de quitar un recurso a un proceso, hacer que otro proceso lo utilice y después regresarlo sin que el proceso lo note, depende en gran parte de la naturaleza del recurso. Con frecuencia es difícil o imposible recuperarse de esta manera. Elegir el proceso a suspender depende en gran parte de cuáles procesos tienen recursos que se pueden quitar con facilidad.

3.2. RECUPERACIÓN A TRAVÉS DEL RETROCESO Si los diseñadores de sistemas y operadores de máquinas saben que es probable que haya interbloqueos, pueden hacer que los procesos realicen puntos de comprobación en forma periódica. Realizar puntos de comprobación en un proceso significa que su estado se escribe en un archivo para poder reiniciarlo más tarde.

3.3. RECUPERACIÓN A TRAVÉS DE LA ELIMINACIÓN DE PROCESOS La forma más cruda y simple de romper un interbloqueo es eliminar uno o más procesos. Una posibilidad es eliminar a uno de los procesos en el ciclo. Con un poco de suerte, los demás procesos podrán continuar. Si esto no ayuda, se puede repetir hasta que se rompa el ciclo.

4. CÓMO EVITAR INTERBLOQUEOS

4.1. Trayectorias de los recursos Los principales algoritmos para evitar interbloqueos se basan en el concepto de los estados seguros. Antes de describir los algoritmos, haremos una ligera digresión para analizar el concepto de la seguridad, en una forma gráfica y fácil de comprender.

4.2. Estados seguros e inseguros Se dice que un estado es seguro si hay cierto orden de programación en el que se puede ejecutar cada proceso hasta completarse, incluso aunque todos ellos solicitaran de manera repentina su número máximo de recursos de inmediato.

4.3. El algoritmo del banquero para un solo recurso Dijkstra (1965) ideó un algoritmo de programación que puede evitar interbloqueos; este algoritmo se conoce como el algoritmo del banquero y es una extensión del algoritmo de detección de interbloqueos.

4.4. El algoritmo del banquero para varios recursos El algoritmo del banquero se puede generalizar para manejar varios recursos

5. CÓMO PREVENIR INTERBLOQUEOS

5.1. Cómo atacar la condición de exclusión mutua.

5.2. Cómo atacar la condición de contención y espera.

5.3. Cómo atacar la condición no apropiativa.

5.4. Cómo atacar la condición de espera circular.

6. BLOQUEO DE DOS FASES Aunque los métodos para evitar y prevenir los interbloqueos no son muy prometedores en el caso general, para aplicaciones específicas se conocen muchos algoritmos excelentes de propósito especial. Como ejemplo, en muchos sistemas de bases de datos, una operación que ocurre con frecuencia es solicitar bloqueos sobre varios registros y después actualizar todos los registros bloqueados. Cuando hay varios procesos en ejecución al mismo tiempo, hay un peligro real de interbloqueo. A menudo, a este método se le conoce como bloqueo de dos fases.

7. Adquisición de recursos Para ciertos tipos de recursos, como los registros de una base de datos, es responsabilidad de los procesos de usuario administrar su uso. Una manera de permitir que los usuarios administren los recursos es asociar un semáforo con cada recurso.

7.1. Se pueden utilizar mutexes de igual forma

7.2. Ahora cada uno se bloqueará al tratar de adquirir el otro. Ninguno de los procesos se volverá a ejecutar. Esa situación es un interbloqueo.

8. Condiciones para los interbloqueos de recursos

8.1. 1. Condición de exclusión mutua. Cada recurso se asigna en un momento dado a sólo un proceso, o está disponible. 2. Condición de contención y espera. Los procesos que actualmente contienen recursos que se les otorgaron antes pueden solicitar nuevos recursos

8.2. 3. Condición no apropiativa. Los recursos otorgados previamente no se pueden quitar a un proceso por la fuerza. Deben ser liberados de manera explícita por el proceso que los contiene. 4. Condición de espera circular. Debe haber una cadena circular de dos o más procesos, cada uno de los cuales espera un recurso contenido por el siguiente miembro de la cadena.

9. Modelado de interbloqueos Modelar estas cuatro condiciones mediante el uso de gráficos dirigidos. Los gráficos tienen dos tipos de nodos: procesos, que se muestran como círculos, y recursos, que se muestran como cuadros. Un arco dirigido de un nodo de recurso (cuadro) a un nodo de proceso (círculo) significa que el recurso fue solicitado previamente por, y asignado a, y actualmente es contenido por ese proceso.

9.1. DETECCIÓN Y RECUPERACIÓN DE UN INTERBLOQUEO Una segunda técnica es la detección y recuperación. Cuando se utiliza esta técnica, el sistema no trata de evitar los interbloqueos. En vez de ello, intenta detectarlos cuando ocurran y luego realiza cierta acción para recuperarse después del hecho.

9.1.1. DETECCIÓN DEL INTERBLOQUEOS CON UN RECURSO DE CADA TIPO Vamos a empezar con el caso más simple: sólo existe un recurso de cada tipo. Dicho sistema podría tener un escáner, un grabador de CD, un trazador (plotter) y una unidad de cinta, pero no más que un recurso de cada clase.

9.1.2. DETECCIÓN DEL INTERBLOQUEO CON VARIOS RECURSOS DE CADA TIPO Cuando existen varias copias de algunos de los recursos, se necesita un método distinto para detectar interbloqueos.