Saltar al contenido

Introducción a DEADLOCK en el sistema operativo

¿Qué es Deadlock?

Punto muerto es un caso que ocurre en OS cuando cualquier proceso entra en un estado de espera porque otro proceso de espera requiere la capacidad requerida. El bloqueo es un problema común en el campo del multiprocesamiento, donde algunos procesos comparten un tipo específico de recurso que es mutuamente excluyente llamado bloqueo suave o software.

En este tutorial sobre el sistema operativo, aprenderá:

Ejemplo de interbloqueo

Ejemplo de un bloqueo muerto

¿Qué es una estancia circular?

Un proceso está esperando el recurso, que está retenido por el segundo proceso, que también está esperando el recurso retenido por el tercer proceso, etc. Esto continuará hasta que el proceso final espere un recurso retenido por el primer proceso. Esto crea una cadena circular.

Por ejemplo, el recurso B se asigna al proceso A cuando solicita el recurso A. De manera similar, el recurso A se asigna al proceso B y solicita el recurso B. Esto crea un bucle de espera circular.

Un ejemplo de estancia circular

Por ejemplo, una computadora tiene tres unidades USB y tres procesos. Los tres procesos pueden contener una de las unidades USB. Entonces, cuando todos los procesos soliciten otra unidad, los tres procesos tendrán el estado final, ya que cada proceso estará esperando que se libere la unidad USB, que está actualmente en uso. Esto resultará en una cadena circular.

Ejemplo de espera circular

Detección de interbloqueo

El planificador de recursos puede detectar incidentes muertos. Un programador de recursos ayuda a un sistema operativo a realizar un seguimiento de todos los recursos asignados a varios procesos. Entonces, cuando se encuentra una fecha límite, se puede resolver dando los siguientes métodos:

Prohibición de interbloqueo:

Es importante evitar una fecha límite antes de que pueda suceder. El sistema verifica cada transacción antes de que se realice para asegurarse de que no esté a cargo de los casos de bloqueo. De modo que incluso un pequeño cambio muerto ocurriría que una posible operación futura de Deadlock no permitiría que se realizara el proceso.

Es un conjunto de métodos para garantizar que uno no pueda cumplir con una de las condiciones.

Sin acción preventiva:

Sin preferencia: un recurso solo puede liberarse voluntariamente a través del proceso que lo mantiene después de que ese proceso haya completado su tarea.

Exclusión mutua:

La exclusión mutua es una forma completa de Mutex. Es un tipo especial de semáforo binario que se utiliza para controlar el acceso al recurso compartido. Incluye un mecanismo de herencia de prioridad para evitar problemas de inversión de prioridad extendidos. Permite mantener las tareas actuales de alta prioridad en la posición bloqueada durante el mayor tiempo posible.

Los recursos compartidos, como los archivos de solo lectura, no dan lugar a interbloqueos, sino que requieren acceso exclusivo a través de un único proceso a los recursos, como impresoras y cintas.

Espera y espera:

En esta condición, los procesos deben dejar de mantener uno o varios recursos y esperar al mismo tiempo uno o más.

Manténgase circular:

Ejecuta un comando completo de todos los tipos de recursos. Mantenerse circular también requiere que cada proceso requiera recursos en orden creciente de cálculo.

Evite el punto muerto

Es mejor evitar el cierre en lugar de tomar medidas después de que se haya producido el interbloqueo. Necesita información adicional, como cómo se deben utilizar los recursos. La evasión de fechas límite es el modelo más simple y útil en el que cada proceso declara el número máximo de recursos de cada tipo que pueden ser necesarios.

Algoritmos de evitación

El algoritmo de evitación de bloqueo le ayuda a evaluar dinámicamente el estado de asignación de recursos para que nunca se produzca un escenario de permanencia circular.

Un ejemplo de un tipo de recurso.

Multiplica escenarios de tipo de recurso.

Diferencia entre hambre y punto muerto

Aquí hay algunas diferencias importantes entre Deadlock y Hunger:

Punto muertoHambriento
El estado de bloqueo ocurre cuando uno de los procesos ha sido bloqueado.El hambre es una situación en la que se han bloqueado todos los procesos de baja prioridad y en la que funcionan los de alta prioridad.
El interbloqueo es un proceso infinito.El hambre es un proceso largo sin esperas, pero no es un proceso interminable.
Cada Deadlock siempre tiene hambre.No es necesario acabar con todo el hambre.
Entonces se produce un punto muerto. Exclusión mutua, espera y espera. Aquí, la preferencia no ocurre y permanece circular al mismo tiempo.Ocurre debido a la priorización incontrolada y la gestión de recursos.

Ventajas de Deadlock

Aquí están los pros y los contras de usar el método Deadlock

Desventajas del método Deadlock

Aquí, hay desventajas / desventajas de usar el método de interbloqueo

Resumen: