Recomendado, 2024

Escolha Do Editor

Diferença entre impasse e fome no sistema operacional

Deadlock e Starvation são as condições em que os processos que solicitam um recurso foram atrasados ​​por um longo período. Embora o impasse e a fome sejam diferentes entre si em muitos aspectos. O deadlock é uma condição na qual nenhum processo prossegue para execução e cada um aguarda recursos que foram adquiridos pelos outros processos. Por outro lado, em Starvation, o processo com altas prioridades usa continuamente os recursos que impedem o processo de baixa prioridade de adquirir os recursos. Vamos discutir mais algumas diferenças entre deadlock e starvation com a ajuda do gráfico de comparação mostrado abaixo.

Gráfico de comparação

Base para ComparsãoImpasseFome
BasicO deadlock é o local onde nenhum processo continua e é bloqueado.A fome é onde os processos de baixa prioridade são bloqueados e o processo de alta prioridade continua.
Condição crescenteA ocorrência de exclusão mútua, espera e espera, sem preempção e circular esperar simultaneamente.Aplicação de prioridades, gerenciamento descontrolado de recursos.
Outro nomeEspera circular.Lifelock.
RecursosEm deadlocked, os recursos solicitados são bloqueados pelos outros processos.Na fome, os recursos solicitados são usados ​​continuamente por processos de alta prioridade.
PrevençãoEvitando a exclusão mútua, segure e espere, e espere circular e permitindo a preempção.Envelhecimento.

Definição de impasse

Deadlock é uma situação em que os vários processos na CPU competem pelo número finito de recursos disponíveis na CPU. Aqui, cada processo contém um recurso e espera para adquirir um recurso que é mantido por algum outro processo. Todos os processos aguardam recursos de maneira circular. Na imagem abaixo, você pode ver que o Processo P1 adquiriu o recurso R2 solicitado pelo processo P2 e o Processo P1 está solicitando o recurso R1, que é novamente mantido por R2. Portanto, o processo P1 e P2 formam um impasse.

Deadlock é um problema comum em sistemas operacionais multiprocessados, sistemas distribuídos e também em sistemas de computação paralelos. Existem quatro condições que devem ocorrer simultaneamente para elevar a condição de deadlock, que são exclusão mútua, espera e espera, sem preempção e espera circular.

  • Exclusão Mútua: Apenas um processo de cada vez pode usar um recurso se outro processo solicitar o mesmo recurso, ele deve aguardar até que o processo usando o recurso o libere.
  • Espera e Espera: Um processo deve estar segurando um recurso e aguardando para adquirir outro recurso mantido por algum outro processo.
  • Sem Preempção: O processo que contém os recursos não pode ser antecipado. O processo que contém o recurso deve liberar o recurso voluntariamente quando concluir sua tarefa.
  • Espera circular: o processo deve aguardar recursos de maneira circular. Suponha que tenhamos três processos {P0, P1, P2}. O P0 deve aguardar o recurso mantido por P1; P1 deve esperar para adquirir o recurso mantido pelo processo P2, e P2 deve esperar para adquirir o processo realizado por P0.

Embora existam alguns aplicativos que podem detectar os programas que podem ficar em conflito. Mas o sistema operacional nunca é responsável por impedir os deadlocks. É responsabilidade dos programadores projetar programas livres de deadlock. Isso pode ser feito evitando as condições acima que são necessárias para a ocorrência de deadlock

Definição de Starvation

A fome pode ser definida como quando uma solicitação de processo para um recurso e esse recurso tem sido continuamente usado pelos outros processos, então o processo solicitante enfrenta a fome. Na fome, um processo pronto para execução espera que a CPU aloque o recurso. Mas o processo tem que esperar indefinidamente, pois os outros processos bloqueiam continuamente os recursos solicitados.

O problema da fome geralmente ocorre no algoritmo de escalonamento prioritário . No algoritmo de escalonamento de prioridade, o processo com prioridade mais alta sempre é alocado ao recurso, evitando que o processo de prioridade mais baixa obtenha o recurso solicitado.

O envelhecimento pode resolver o problema da fome. O envelhecimento aumenta gradualmente a prioridade do processo que está esperando há muito tempo pelos recursos. O envelhecimento impede que um processo com baixa prioridade espere indefinidamente por um recurso.

Principais diferenças entre deadlock e starvation no sistema operacional

  1. Em um deadlock, nenhum dos processos prossegue para execução, cada processo fica bloqueado aguardando os recursos adquiridos pelo outro processo. Por outro lado, a fome é uma condição na qual os processos que possuem maior prioridade podem adquirir os recursos continuamente, evitando que os processos de baixa prioridade adquiram recursos, resultando em bloqueio indefinido de processos de baixa prioridade.
  2. O impasse surge quando quatro condições Exclusão mútua, Espera e espera, Nenhuma preempção e Espera circular ocorrem simultaneamente. No entanto, a inanição ocorre quando as prioridades do processo são impostas durante a alocação de recursos ou quando há gerenciamento descontrolado de recursos no sistema.
  3. O deadlock é frequentemente chamado pelo nome de wait circular, enquanto o starvation é chamado de Lived lock .
  4. Em Deadlock, os recursos são bloqueados pelo processo, enquanto na inanição, os processos são continuamente usados ​​pelos processos com alta prioridade.
  5. O impasse pode ser evitado evitando as condições como exclusão mútua, Espera e espera, e espera circular e permitindo a preempção dos processos que estão retendo recursos por um longo tempo. Por outro lado, a fome pode ser evitada pelo envelhecimento .

Conclusão:

Tanto Deadlock quanto Starvation atrasam a execução do processo, bloqueando-a. Por um lado, o impasse pode fazer com que os processos morram de fome e, por outro, a inanição pode tirar os processos do impasse.

Top