Saltar al contenido

Diferencias (si las hay) entre livelock y starvation en los sistemas operativos

Esta sección fue evaluado por nuestros expertos para asegurar la exactitud de nuestra esta sección.

Solución:

Livelock es un caso especial de agotamiento de recursos en el que dos procesos siguen un algoritmo para resolver un interbloqueo 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 ningún bloqueo, solo un único proceso desafortunado que no recibe recursos asignados por el planificador.

Hambre y Livelock

El hambre y el livelock son un problema mucho menos común que el deadlock, pero siguen siendo problemas que es probable que encuentre todo diseñador de software concurrente.

Inanición

Starvation describe una situación en la que un subproceso no puede obtener acceso regular a los recursos compartidos y no puede progresar. Esto sucede cuando los recursos compartidos no están disponibles durante largos períodos 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 sincronizado frecuente al mismo objeto.

Livelock

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

Referencias: Starvation and 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 *