Diferencia Entre Punto Muerto Y Hambre

Tabla de contenido:

Diferencia Entre Punto Muerto Y Hambre
Diferencia Entre Punto Muerto Y Hambre

Vídeo: Diferencia Entre Punto Muerto Y Hambre

Vídeo: Diferencia Entre Punto Muerto Y Hambre
Vídeo: Problemas Umbral de rentabilidad o Punto muerto (UR, PM) 2024, Mayo
Anonim

Deadlock vs Hambruna

La principal diferencia entre el estancamiento y la inanición es la relación de causa y efecto entre ellos; es el punto muerto lo que provoca el hambre. Otra diferencia interesante entre el punto muerto y el hambre es que el punto muerto es un problema, mientras que el hambre puede, a veces, ayudar a salir de un punto muerto. En el mundo de la informática, al escribir un programa informático, habrá más de un proceso / subproceso que se ejecutará simultáneamente uno tras otro para cumplir con el servicio requerido para el programa. Por lo tanto, para tener un sistema justo, el programador debe asegurarse de que todos los procesos / subprocesos reciban o tengan suficiente acceso a los recursos que necesitan. De lo contrario, habrá un callejón sin salida y más tarde provocará una inanición. Generalmente, un sistema justo no contiene puntos muertos o hambrunas. Los puntos muertos y las hambrunas ocurrirán principalmente cuando muchos subprocesos compiten por recursos limitados.

¿Qué es Deadlock?

Un interbloqueo es una condición que ocurre cuando dos subprocesos o procesos esperan entre sí para completar la tarea. Solo colgarán, pero nunca se detendrán ni terminarán su tarea. En informática, los puntos muertos se pueden ver en todas partes. En una base de datos de transacciones, cuando dos procesos cada uno dentro de su propia transacción actualizan las mismas dos filas de información pero en el orden opuesto, se producirá un punto muerto. En la programación concurrente, puede ocurrir un punto muerto cuando dos acciones en competencia esperarán a que la otra avance. En los sistemas de telecomunicaciones, puede producirse un punto muerto debido a la pérdida o corrupción de señales.

En la actualidad, el interbloqueo es uno de los principales problemas de los sistemas multiprocesamiento y la computación en paralelo. Como solución, se implementa un sistema de bloqueo llamado sincronización de procesos tanto para software como para hardware.

Diferencia entre punto muerto y hambre
Diferencia entre punto muerto y hambre

¿Qué es el hambre?

Según el diccionario de la ciencia médica, la inanición es el resultado de una falta severa o total de los nutrientes necesarios para el mantenimiento de la vida. De manera similar, en ciencias de la computación, el hambre es un problema que se encuentra cuando varios subprocesos o procesos esperan el mismo recurso, lo que se denomina punto muerto.

Para salir de un punto muerto, uno de los procesos o subprocesos debería tener que darse por vencido o retroceder para que el otro subproceso o proceso pueda utilizar el recurso. Si esto sucede continuamente y el mismo proceso o subproceso tiene que darse por vencido o retroceder cada vez mientras deja que otros procesos o subprocesos utilicen el recurso, entonces el proceso o subproceso seleccionado, que se revertirá, sufrirá una situación llamada inanición. Por tanto, para salir de un punto muerto, la inanición es una de las soluciones. Por lo tanto, a veces la inanición se denomina una especie de enclavamiento. Cuando hay muchos procesos o subprocesos de alta prioridad, un proceso o subproceso de menor prioridad siempre morirá de hambre en un punto muerto.

Puede haber muchas hambrunas, como la falta de recursos y la falta de CPU. Hay muchos ejemplos comunes de inanición. Son el problema de los lectores-escritores y el problema de los filósofos comedores, que es más famoso. Hay cinco filósofos silenciosos sentados en una mesa redonda con cuencos de espagueti. Se colocan tenedores entre cada par de filósofos adyacentes. Cada filósofo debe pensar y comer alternativamente. Sin embargo, un filósofo solo puede comer espaguetis cuando tiene los tenedores derecho e izquierdo.

Deadlock vs Hambruna
Deadlock vs Hambruna

Los "filósofos gastronómicos"

¿Cuál es la diferencia entre Deadlock y Starvation?

• Proceso:

• En el punto muerto, los dos subprocesos o procesos se esperarán el uno al otro y ambos no avanzarán.

• En el hambre, cuando dos o más subprocesos o procesos esperan el mismo recurso, uno retrocederá y dejará que los demás usen el recurso primero y, a continuación, el subproceso o proceso hambriento volverá a intentarlo. Por lo tanto, todos los subprocesos o procesos seguirán adelante.

• Retroceso:

• En un interbloqueo, tanto los subprocesos / procesos de alta prioridad como los subprocesos / procesos de baja prioridad se esperarán entre sí de forma infinita. Nunca termina.

• Pero, en caso de inanición, los de baja prioridad esperarán o retrocederán, pero los de alta prioridad continuarán.

• Esperando o Bloquear:

• Un punto muerto es una espera circular.

• La inanición es una especie de bloqueo activo y, a veces, ayuda a salir de un punto muerto.

• Punto muerto y hambre:

• Un punto muerto provoca inanición, pero la inanición no provoca un punto muerto.

• Causas:

• Se producirá un interbloqueo debido a la exclusión mutua, espera y espera, sin preferencia o espera circular.

• El hambre se produce debido a la escasez de recursos, la gestión descontrolada de los recursos y las prioridades de los procesos.

Resumen:

Deadlock contra hambre

Los puntos muertos y las hambrunas son algunos de los problemas que ocurren debido a las carreras de datos y las condiciones de carrera que ocurren durante la programación y la implementación del hardware. En un punto muerto, dos subprocesos esperarán infinitamente entre sí sin ejecutarse, mientras que, en caso de inanición, un subproceso retrocederá y dejará que el otro subproceso use los recursos. Un punto muerto provocará hambre, mientras que la inanición ayudará a un hilo a salir de un punto muerto.

Imágenes cortesía:

  1. Computadora de Steve Jurvetson de Menlo Park, EE. UU. (CC BY 2.0)
  2. Los "filósofos gastronómicos" de Bdesham (CC BY-SA 3.0)

Recomendado: