Saltar al contenido

Diferencias (si las hay) entre livelock e inanición en los sistemas operativos

Solución:

Livelock es un caso especial de escasez de recursos en el que dos procesos siguen un algoritmo para resolver un punto muerto que da como resultado un ciclo de diferentes estados bloqueados porque cada proceso intenta la misma estrategia para evitar el bloqueo.

La inanición en sí puede ocurrir para un proceso sin que otro proceso se bloquee cíclicamente; en este caso, no existe un bloqueo en vivo, solo un único proceso desafortunado que no obtiene recursos asignados por el programador.

Hambruna y Livelock

La inanición y el bloqueo en vivo son un problema mucho menos común que el bloqueo, pero siguen siendo problemas con los que es probable que se encuentren todos los diseñadores de software simultáneo.

Inanición

El hambre describe una situación en la que un hilo no puede obtener acceso regular a los recursos compartidos y no puede progresar. Esto sucede cuando los recursos compartidos dejan de estar disponibles durante períodos prolongados debido a subprocesos “codiciosos”. Por ejemplo, suponga que un objeto proporciona un método sincronizado que a menudo tarda mucho en volver. Si un subproceso invoca este método con frecuencia, a menudo se bloquearán otros subprocesos que también necesitan acceso frecuente sincronizado al mismo objeto.

Livelock

Un hilo a menudo actúa en respuesta a la acción de otro hilo. Si la acción del otro hilo también es una respuesta a la acción de otro hilo, entonces puede resultar en un bloqueo en vivo. Al igual que con el interbloqueo, los subprocesos bloqueados en vivo no pueden avanzar más. Sin embargo, los hilos no están bloqueados, simplemente están demasiado ocupados respondiendo entre sí para reanudar el trabajo. Esto es comparable a dos personas que intentan cruzarse en un pasillo: Alphonse se mueve a su izquierda para dejar pasar a Gaston, mientras que Gaston se mueve a su derecha para dejar pasar a Alphonse. Al ver que todavía se bloquean entre sí, Alphone se mueve hacia su derecha, mientras que Gaston se mueve hacia su izquierda. Todavía se bloquean entre sí, así que …

Referencias: Starvation y Livelock (por documentos de Java)

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *