Punto muerto e inanición en el sistema operativo OS

Anonim

El sistema operativo es el software más fundamental que se ejecuta en una computadora. Es responsable de administrar la memoria y los procesos de la computadora, así como de proteger los detalles del hardware de los programas de aplicación que lo utilizan. El sistema operativo de una computadora también garantiza una asignación justa de recursos a los usuarios y programas, en lugar de una distribución equitativa entre los procesos. Un sistema de programación justo permite que un proceso use la CPU mientras que el otro está esperando en la cola. Como resultado, cada subproceso obtiene suficiente acceso a recursos limitados, lo que evita las dos condiciones más comunes que, de lo contrario, retrasarían el proceso: punto muerto e inanición. Ambos son conceptos relacionados donde los procesos no tienen acceso a los recursos. Este artículo destaca algunos puntos clave que comparan los dos en varios frentes.

¿Qué es el punto muerto?

El interbloqueo es una condición en la que se bloquea un conjunto de subprocesos porque cada proceso que contiene un recurso está intentando acceder a otros recursos que otro proceso está reteniendo, lo que eventualmente impide una programación justa del sistema. Se produce una situación de interbloqueo cuando las siguientes cuatro condiciones son verdaderas: la exclusión mutua significa que solo un proceso puede acceder a un recurso a la vez; Ninguna condición de preferencia significa que un recurso solo puede ser liberado voluntariamente por el proceso que contiene el recurso; Mantener y esperar significa que un proceso que contiene recursos puede solicitar recursos adicionales mantenidos por otros procesos y; La espera circular significa que dos o más procesos están atrapados en una cadena circular que espera a que cada proceso libere sus recursos respectivos.

¿Qué es el hambre?

La inanición es una condición que surge cuando un proceso entra en el período de espera por tiempo indefinido, ya que un proceso de baja prioridad nunca tiene la oportunidad de acceder al recurso debido a un flujo constante de procesos de alta prioridad que acceden al mismo recurso. Es un problema de administración de recursos porque a un proceso se le niega el acceso al recurso que requiere, lo que lleva al proceso a un período de espera indefinido. Ocurre porque el recurso que requiere nunca se asigna al proceso, lo que hace que el proceso se quede sin recursos, de ahí el nombre. La mejor manera de evitar la inanición es utilizar la técnica de envejecimiento, que aumenta gradualmente la prioridad de los procesos que están en el período de espera durante mucho tiempo para garantizar un sistema de programación justo.

Diferencia entre Deadlock y Starvation en OS

  1. Definición de punto muerto y hambre

Tanto el punto muerto como el de inanición son conceptos relacionados que impiden que una programación justa del sistema en la que los procesos están bloqueados para obtener acceso a los recursos. El interbloqueo, como su nombre indica, se refiere a una condición donde un conjunto de subprocesos o procesos están bloqueados porque cada proceso está esperando para adquirir un recurso que está siendo retenido por otro proceso, lo que resulta en una situación de interbloqueo donde los programas dejan de funcionar. Por otro lado, la inanición se desencadena por un interbloqueo que provoca la congelación de un proceso porque a un proceso de baja prioridad se le niega el acceso a un recurso que está asignado a un proceso de alta prioridad.

  1. Condición

Un interbloqueo se refiere a una condición específica que se produce cuando un subproceso o un proceso entra en un período de espera porque el recurso del sistema que solicitó está siendo retenido por otro proceso, que a su vez está esperando que otro proceso libere su recurso, creando así un interbloqueo. Esto es causado por la mala utilización de los recursos. La inanición es una condición de aplazamiento indefinido en la que a un proceso de baja prioridad se le niega el acceso a los recursos que requiere porque los recursos se asignan a otro proceso de alta prioridad. Es un problema de administración de recursos que obliga al sistema a asignar recursos solo a procesos de alta prioridad.

  1. Caracterización del punto muerto y del hambre.

El interbloqueo es la última forma de inanición causada cuando se producen simultáneamente las siguientes cuatro condiciones: Exclusión mutua, Sin preferencia, Retención y espera y Espera circular. Una condición de interbloqueo se produce solo en sistemas en los que se cumplen las cuatro condiciones. La inanición se produce en función de diferentes condiciones, como cuando no hay suficientes recursos y la prioridad de los procesos comienza a disminuir o cuando los procesos comienzan a administrar recursos a otros procesos sin control. Si un proceso de baja prioridad solicita un recurso reservado para los procesos de mayor prioridad, el proceso se quedará sin vida para siempre. La inanición también se produce cuando los recursos se asignan de manera arbitraria, lo que hace que los procesos esperen durante un período de tiempo más prolongado.

  1. Prevención

La inanición se puede evitar mediante el uso de un algoritmo de programación adecuado con una cola de prioridad que, de hecho, también usa la técnica de antigüedad, una técnica de programación que agrega el factor de antigüedad a la prioridad de cada solicitud, lo que significa que aumenta el nivel de prioridad de los procesos de baja prioridad que han estado esperando. por mucho tiempo. También proporcionar más recursos a los programas debe evitar la congestión continua de recursos. Para evitar que el sistema entre en un punto muerto, se debe negar a los procesos el acceso a uno o más recursos mientras simultáneamente espera a otros y solo se debe permitir que un proceso acceda a un recurso a la vez.

Deadlock vs. Starvation: Tabla de comparación

Resumen de Deadlock VS. Inanición

Tanto el punto muerto como la inanición son conceptos relacionados en sistemas operativos de multiprocesamiento o sistemas distribuidos que hacen que uno o más subprocesos o procesos se atasquen en la espera de los recursos que necesitan. El interbloqueo es una situación que surge cuando uno o más procesos solicitan el acceso al mismo recurso que causa que el proceso se congele, mientras que la inanición es causada por el interbloqueo que empuja el proceso a un estado de aplazamiento indefinido porque a los procesos se les niega el acceso a un recurso que posee Proceso de alta prioridad y necesidad de esperar para siempre.