Trataré de explicarlo en base a mi comprensión.
El progreso significa que el proceso eventualmente debería poder completarse.
La espera acotada significa que ningún proceso debe esperar un recurso por una cantidad de tiempo infinita.
- ¿Almacenar varias claves por nodo, como en B, B + Árboles, es un concepto válido?
- ¿Cuál es el algoritmo más rápido para obtener la matriz inversa?
- ¿Cómo hace IDM que la descarga sea 5-8 veces más rápida?
- ¿Cuáles son las aplicaciones de la teoría de autómatas en simulación y modelado?
- ¿Cuáles son algunas ideas para proyectos de último año basados en computación en la nube, virtualización o Linux?
Si consideramos live-lock, esta es una condición cuando la espera acotada es verdadera pero el progreso no lo es. Tomando un ejemplo de la vida real, supongamos que en una carretera dos vehículos se mueven uno hacia el otro. Ambos intentan dar un paso moviéndose hacia un lado.
El Vehículo A libera el lado izquierdo de la carretera para el Vehículo B, lo que significa que el vehículo B no tiene que esperar indefinidamente. Entonces la espera acotada está satisfecha.
Sin embargo, el Vehículo B también se mueve hacia su lado izquierdo, para dejar el lado derecho hacia A. Entonces, nuevamente, ambos están uno frente al otro y no es posible avanzar. Si continúan moviéndose al mismo lado de la carretera, esta situación será algo similar a lo que llamamos live-lock.
Si tomamos los lados del camino como recursos, y los vehículos como procesos, entonces ambos están liberando sus recursos y adquiriendo otros nuevos dentro del tiempo limitado, pero aún no tenemos progreso. Esto se llama live-lock, ya que ambos procesos realizan algunos cambios y no están atascados en el mismo estado, pero como un sistema completo no puede completar su ejecución.