Saltar al contenido

¿Qué, por ejemplo, diferencia con Deadlock

¿Qué es Livelock?

UNA. Livelock es un caso en el que una solicitud de bloqueo exclusivo se rechaza repetidamente, ya que muchos bloqueos compartidos superpuestos continúan interfiriendo entre sí. Los procesos les impiden cambiar su estado, lo que les impide completar la tarea. Esto les impide completar la tarea.

En este tutorial sobre el sistema operativo, aprenderá:

Ejemplos de Livelock

Ejemplo 1:

Un ejemplo más fácil de Livelock es dos personas que se encuentran cara a cara en un pasillo, y las dos se hacen a un lado para dejar pasar a la otra persona. Terminan moviéndose de un lado a otro sin hacer ningún progreso mientras se mueven de la misma manera al mismo tiempo. Aquí, nunca se cruzan.

Ejemplo 2:

Como puede ver en la imagen de arriba, cada uno de los dos procesos dados requiere dos recursos, y usan el registro de entrada de sondeo primitivo para intentar obtener los bloqueos que necesitan. Si el intento falla, el método funciona nuevamente.

  1. Proceso A recurso Y Y.
  2. El proceso B tiene una capacidad de X.
  3. El proceso A requiere el recurso X.
  4. El proceso B requiere el recurso Y.

Suponiendo que el proceso A se ejecuta primero y obtiene el recurso de datos X y luego el proceso B y el recurso Y se ejecutan, sin importar qué proceso se ejecute primero, ninguno de ellos avanza más.

Sin embargo, ninguno de los procesos se ve obstaculizado. Utilizan los recursos de la CPU repetidamente sin progreso, pero también detienen cualquier bloque de procesamiento.

Por tanto, este caso no es un caso muerto porque no hay un solo proceso que esté bloqueado, sino que estamos ante la historia de algo que equivale a un punto muerto, es decir, LIVELOCK.

¿Qué causa Livelock?

Livelock ocurre cuando el número total de procesos permitidos en un sistema particular debe ser definido por el número total de entradas en la tabla de procesos. Por lo tanto, las ranuras de la mesa de proceso deben denominarse Recursos terminados.

¿Qué es Deadlock?

Una fecha límite es una situación que ocurre en un sistema operativo cuando cualquier proceso entra en un estado de espera porque otro proceso de espera requiere la capacidad requerida. El interbloqueo es un problema común en el multiprocesamiento donde algunos procesos comparten un tipo específico de recurso que es mutuamente excluyente llamado bloqueo suave o software.

Ejemplo de interbloqueo

Ejemplo de un bloqueo muerto

¿Qué es el hambre?

El hambre es una situación en la que se han bloqueado todos los procesos de baja prioridad y en la que continúan todos los procesos de alta prioridad. En cualquier sistema, las solicitudes de recursos de alta o baja prioridad continúan ocurriendo de forma dinámica. En consecuencia, se necesita alguna política para decidir quién recibirá apoyo y cuándo.

Con algunos algoritmos, es posible que algunos procesos no obtengan el servicio deseado aunque no estén bloqueados. El hambre ocurre cuando los recursos compartidos no están disponibles durante mucho tiempo en varios aspectos.

Ejemplo de hambre:

Por ejemplo, un objeto ofrece un método de sincronización que probablemente tarde mucho en volver. Si un subproceso utiliza este método con frecuencia, se bloquearán otros subprocesos que a menudo requieren acceso sincronizado al mismo objeto.

Diferencia entre Deadlock, Starvation y Livelock

Resumen: