Recomendado, 2024

La Elección Del Editor

Diferencia entre Deadlock y Starvation en OS

Deadlock y Starvation son las condiciones donde los procesos que solicitan un recurso se han retrasado por mucho tiempo. Aunque el punto muerto y la inanición son diferentes entre sí en muchos aspectos. El interbloqueo es una condición en la que ningún proceso procede de la ejecución y cada uno espera los recursos que han sido adquiridos por los otros procesos. Por otro lado, en Hambre, el proceso con alta prioridad utiliza continuamente los recursos que impiden que el proceso de baja prioridad adquiera los recursos. Discutamos algunas diferencias más entre el interbloqueo y la inanición con la ayuda del cuadro de comparación que se muestra a continuación.

Gráfica comparativa

Bases para ComparsionPunto muertoInanición
BASICEl interbloqueo es donde no procede ningún proceso y se bloquea.El hambre es donde los procesos de baja prioridad se bloquean, y el proceso de alta prioridad continúa.
Condición de levantamientoLa ocurrencia de exclusión mutua, espera y espera, no preferencia y espera circular simultáneamente.Cumplimiento de prioridades, gestión de recursos no controlada.
Otro nombreEspera circular.Lifelock.
RecursosEn el punto muerto, los recursos solicitados son bloqueados por los otros procesos.En la inanición, los recursos solicitados son utilizados continuamente por procesos de alta prioridad.
PrevenciónEvitando la exclusión mutua, espera y espera, y espera circular y permite la prevención.Envejecimiento.

Definición de punto muerto

El punto muerto es una situación en la que los diversos procesos en la CPU compiten por la cantidad finita de recursos disponibles dentro de la CPU. Aquí, cada proceso contiene un recurso y espera para adquirir un recurso que se mantiene en algún otro proceso. Todos los procesos esperan los recursos de forma circular. En la imagen a continuación, puede ver que el Proceso P1 ha adquirido el recurso R2 solicitado por el proceso P2 y el Proceso P1 solicita el recurso R1, que nuevamente es retenido por R2. Así que el proceso P1 y P2 forman un punto muerto.

El interbloqueo es un problema común en los sistemas operativos de multiprocesamiento, los sistemas distribuidos y también en los sistemas de computación en paralelo. Hay cuatro condiciones que deben ocurrir simultáneamente para aumentar la condición de interbloqueo, que son la exclusión mutua, la espera y la espera, la no preferencia y la espera circular.

  • Exclusión mutua: solo un proceso a la vez puede usar un recurso si otro proceso solicita el mismo recurso, tiene que esperar hasta que el proceso que usa el recurso lo libere.
  • Retener y esperar: Un proceso debe estar reteniendo un recurso y esperando para adquirir otro recurso que esté sujeto a otro proceso.
  • Sin preferencia: el proceso que contiene los recursos no se puede anticipar. El proceso que contiene el recurso debe liberar el recurso voluntariamente cuando haya completado su tarea.
  • Espera circular: el proceso debe esperar los recursos de forma circular. Supongamos que tenemos tres procesos {P0, P1, P2}. El P0 debe esperar el recurso en poder de P1; P1 debe esperar para adquirir el recurso retenido por el proceso P2, y P2 debe esperar para adquirir el proceso retenido por P0.

Aunque hay algunas aplicaciones que pueden detectar los programas que pueden quedar bloqueados. Pero el sistema operativo nunca es responsable de prevenir los puntos muertos. Es responsabilidad de los programadores diseñar programas sin interbloqueo. Se puede hacer evitando las condiciones anteriores que son necesarias para que se produzca un interbloqueo.

Definición de inanición

La inanición se puede definir como cuando una solicitud de proceso para un recurso y ese recurso ha sido utilizada continuamente por los otros procesos, entonces el proceso de solicitud se enfrenta a la inanición. En la inanición, un proceso listo para ejecutarse espera a que la CPU asigne el recurso. Pero el proceso debe esperar indefinidamente, ya que los otros procesos bloquean continuamente los recursos solicitados.

El problema de la inanición generalmente ocurre en el algoritmo de planificación de prioridad . En el algoritmo de planificación de prioridad, al proceso con mayor prioridad siempre se le asigna el recurso, lo que evita que el proceso de menor prioridad obtenga el recurso solicitado.

El envejecimiento puede resolver el problema de la inanición. El envejecimiento aumenta gradualmente la prioridad del proceso que ha estado esperando durante mucho tiempo los recursos. El envejecimiento impide que un proceso con baja prioridad espere indefinidamente un recurso.

Diferencias clave entre el punto muerto y el hambre en el sistema operativo

  1. En un punto muerto, ninguno de los procesos procede a la ejecución, cada proceso se bloquea mientras esperan los recursos adquiridos por el otro proceso. Por otro lado, la inanición es una condición en la que los procesos que poseen mayor prioridad pueden adquirir los recursos continuamente al evitar que los procesos de baja prioridad adquieran recursos, lo que resulta en un bloqueo indefinido de los procesos de baja prioridad.
  2. El interbloqueo se produce cuando se producen cuatro condiciones de exclusión mutua, espera y espera, no preferencia y espera circular simultáneamente. Sin embargo, la inanición se produce cuando se han aplicado las prioridades del proceso al asignar recursos, o hay una gestión de recursos no controlada en el sistema.
  3. El interbloqueo se suele llamar con el nombre circular de espera, mientras que la inanición se denomina bloqueo vivido .
  4. En Deadlock, los recursos son bloqueados por el proceso, mientras que, en inanición, los procesos son utilizados continuamente por los procesos con alta prioridad.
  5. El interbloqueo se puede evitar evitando las condiciones como la exclusión mutua, la espera y la espera, la espera circular y permitiendo la anticipación de los procesos que mantienen los recursos durante mucho tiempo. Por otro lado, la inanición se puede prevenir con el envejecimiento .

Conclusión:

Tanto Deadlock como Starvation retrasan la ejecución del proceso al bloquearlo. Por un lado, el punto muerto puede causar que los procesos se mueran de hambre y, por otro lado, el hambre puede hacer que los procesos salgan del punto muerto.

Top