INTERBLOQUEOS
by Lizeth Moradel
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. CÓMO EVITAR INTERBLOQUEOS
3.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.
3.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.
3.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.
3.4. El algoritmo del banquero para varios recursos El algoritmo del banquero se puede generalizar para manejar varios recursos
4. CÓMO PREVENIR INTERBLOQUEOS
4.1. Cómo atacar la condición de exclusión mutua.
4.2. Cómo atacar la condición de contención y espera.
4.3. Cómo atacar la condición no apropiativa.
4.4. Cómo atacar la condición de espera circular.
5. 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.
6. UCENM Catedratico: Jose Antonio Vasquez. Alumna: Daniela Moradel
7. 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.
7.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.
7.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.
7.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.