¿Qué es el punto muerto en el sistema operativo: condiciones y algoritmo de detección?

Pruebe Nuestro Instrumento Para Eliminar Los Problemas





El objetivo principal de un sistema operativo es proporcionar una comunicación adecuada entre los recursos de hardware y software y también brindar servicios comunes a los programas. Cuando un proceso del sistema operativo desea acceder a cualquier recurso, primero envía una solicitud al recurso en particular al que desea acceder, luego utiliza el recurso y finalmente libera el recurso después de usarlo. Supongamos que muchos procesos están tratando de acceder a un recurso al mismo tiempo, se vuelve difícil proporcionar un recurso a todos los procesos a la vez, en tal situación surge el concepto llamado interbloqueo. Por lo tanto, este artículo describe cómo se produce el interbloqueo y cómo superar esta situación.

¿Qué es el punto muerto en el sistema operativo?

Definición: Dead-Lock es una situación en la que dos o más procesadores están esperando que suceda algún evento, pero los eventos que no suceden son una condición de interbloqueo, y se dice que los procesadores están en un estado de interbloqueo. Por ejemplo, supongamos un escenario en tiempo real, donde hay dos coches A y B, conducidos por dos conductores individuales en una carretera de un solo sentido. Ahora surge la situación en la que el conductor del automóvil A dice que moverse hacia el norte es una dirección correcta, mientras que el conductor del automóvil B dice que se mueve hacia el sur es la dirección correcta. Pero ninguno de los dos retrocede para permitir que otro automóvil avance; esta condición se llama condición de punto muerto.




Coche-Ejemplo

coche-ejemplo

Para una mejor comprensión, consideremos otro ejemplo donde hay dos recursos R1, R2 y dos procesos P1 y P2, donde R1 se asigna a P1 y R2 se asigna a P2. Ahora, si P1 quiere acceder a R2, como ya sabemos, R2 está en manos de P2, y ahora P2 quiere acceder a R1, que es P1 se ejecuta solo cuando se accede a R2, también P2 se ejecuta solo cuando se accede a R1 en esta situación. es un estado de interbloqueo.



Ejemplo de procesador

procesador-ejemplo

Condiciones de bloqueo muerto

Las siguientes son las cuatro condiciones de interbloqueo importantes que deben ocurrir si todas las condiciones ocurren simultáneamente, hay ciertas posibilidades de que ocurra el interbloqueo.

Exclusión mutua

Significa que cualquier recurso que estemos usando debe usarse de manera mutuamente excluyente. Donde solo un proceso usa un recurso a la vez. Por ejemplo, el proceso de impresión continúa y de repente otro proceso intenta interrumpir el proceso de impresión. Entonces, en una situación de exclusión mutua, solo después de que se completa la tarea de impresión, solo se procesa la siguiente tarea. La exclusión mutua se puede eliminar compartiendo recursos simultáneamente, lo que no es posible en la práctica.

Exclusión mutua

exclusión mutua

Sin preferencia

De acuerdo a con derecho preferente algoritmos basados ​​en, si hay una tarea prioritaria que intenta interrumpir la tarea actual. El algoritmo preventivo retiene la tarea actual y, en primer lugar, ejecuta la tarea prioritaria y vuelve a su primera tarea. Una situación explicada según el ejemplo anterior donde un proceso retiene el recurso mientras se ejecuta, es decir, P1 puede liberar R1 solo después de la ejecución, de manera similar, P2 libera R2 solo después de la ejecución. Si no hay preferencia, puede producirse un interbloqueo.


Ejemplo de no preferencia

ejemplo de no preferencia

Espera y espera

Un proceso contiene algunos recursos y está esperando recursos adicionales, pero esos recursos son adquiridos por algún otro proceso. En el ejemplo anterior, P1 mantiene R1 y espera a R2, donde R2 es adquirido por P2, y P2 tiene R2 y espera a R1, donde R1 es adquirido por P1 es una situación de espera y espera que se produzca un punto muerto en el sistema.

Ejemplo de espera y espera

ejemplo de espera y espera

Espera circular

Se dice que un conjunto de procesos está en punto muerto si un proceso está esperando un recurso que está asignado a otro proceso y ese proceso está esperando un recurso, es similar al ejemplo explicado anteriormente donde está en forma de bucle. Donde P1 está esperando a R2 y R2 está asignado para P2 y P2 está esperando R1 y R1 asignado para P1, que es una forma de espera circular si esta condición satisface se produce un punto muerto.

Ejemplo de espera circular

ejemplo-de-espera-circular

Algoritmo de detección de bloqueo muerto

Los casos en los que asignamos recursos a los procesos y el sistema operativo vuelve a verificar si se ha producido un interbloqueo en el sistema o no utilizando 2 algoritmos principales de detección de interbloqueo, son

  • Única instancia
  • Varias instancias de tipo de recurso

Única instancia

Una sola instancia es una situación en la que un sistema tiene instancias únicas de todos los recursos. También se conoce como algoritmo de espera de gráfico o gráfico de asignación de recursos. El gráfico de asignación de recursos consta de un conjunto de procesos y un conjunto de recursos que se representan como dos vértices diferentes. Los recursos en el gráfico de asignación de recursos se modifican y se representan en forma de gráfico de espera. Donde esperar la forma del gráfico solo tiene procesos que se representan como vértices como se muestra a continuación en donde,

  • Gráfico de asignación de recursos: los procesos P1, P2, P3 y los recursos R1, R2, R3 se representan en el gráfico de asignación de recursos.
  • Esperar gráfico: solo los procesos P1, P2, P3 se mencionan en espera del gráfico.
  • Si hay una condición de ciclo, que si hay un flujo continuo de un proceso en una dirección, significa que la condición de ciclo sale y espera a que el gráfico esté en una condición de punto muerto.

Ejemplo 1: El siguiente ejemplo muestra que no hay un estado de interbloqueo porque no se observa un flujo continuo en espera del gráfico.

Ejemplo de instancia única1

instancia-única-example1

Ejemplo 2: Se ha producido una condición de interbloqueo porque hay un flujo continuo de ciclo de P1 a P4.

Instancia única - Ejemplo 2

instancia-única-example2

Si el interbloqueo se produce con mucha frecuencia en el sistema, el algoritmo de detección se utiliza con frecuencia. Si se utiliza más el algoritmo de detección, habrá más gastos generales y más tiempo de cálculo. Por lo tanto, para superar esto, invocamos el algoritmo después, dando la misma cantidad de tiempo, así es como se usa el peso del gráfico para detectar el punto muerto.

Varias instancias de tipo de recurso

Varias instancias del tipo de recurso es una situación en la que un sistema tiene varias instancias de todos los recursos, también se conoce como algoritmo de Bankers. Según el algoritmo de los banqueros, tan pronto como el proceso obtiene todos los recursos necesarios, libera sus recursos.

Consideremos el siguiente ejemplo, supongamos que hay 3 procesos P0, P1, P2 y tipo de recurso A, B, C donde A puede ser UPC , B puede ser impresora y C puede ser el teclado. Los dígitos '0' en la columna representan la disponibilidad de recursos.

Caso (i): Supongamos que si tomamos la solicitud de condición es la condición '000' que está presente en P0 y P2, deberíamos verificar qué solicitud se cumple, los procesos P0 liberan los procesos después de ser asignados, luego los siguientes procesos P2 liberan después de ser asignados. Así, en una secuencia, uno a uno los procesos liberan P0, P2, P3, P1, P4 en una secuencia. Finalmente, obtenemos recursos disponibles como P7, P2, P6. La secuencia disponible es una condición en la que no hay interbloqueo.

Bankers-Algorithm-Example1

algoritmo-banquero-ejemplo1

Casas (ii): Suponga que si P2 es 001 en lugar de 000, ahora aplique el algoritmo bancario para verificar la condición de interbloqueo, donde el único P0 se ejecuta entre los 5 procesos. Por tanto, P1, P2, P3, P4 están en estado de interbloqueo, excepto P0.

Banqueros-Example2

banqueros-example2

Aplicaciones de Deadlock

Las aplicaciones del punto muerto se pueden explicar con un ejemplo en tiempo real de los resultados del examen en línea, donde varios estudiantes intentan acceder al sitio web de su universidad en el momento de la publicación. Se puede observar que en ocasiones la página web no se carga a la vez para múltiples usuarios, esta es una condición de interbloqueo. Esto puede superarse utilizando cualquiera de los algoritmos.

Ventajas

Las ventajas del interbloqueo son

  • No se observa preferencia en la evitación de puntos muertos
  • Sin demora en el proceso

Desventajas

La desventaja del interbloqueo es

  • El recurso a utilizar debe conocerse de antemano
  • Bloqueo del proceso durante mucho tiempo.
  • Las pérdidas de suscripción preferente se heredan.

Este artículo describe cómo se produce el interbloqueo cuando hay dos o más procesos y las tres condiciones que son la causa de que se produzca un interbloqueo, y los dos tipos de algoritmos, a saber, el algoritmo de intercambio de recursos que detecta que existe un interbloqueo. condición de interbloqueo y el algoritmo de los banqueros, que es un algoritmo para evitar el bloqueo. Aquí está la pregunta '¿Qué sucede si se ignora el interbloqueo?'.