Diferença entre Deadlock e fome no sistema operacional

Autor: Laura McKinney
Data De Criação: 3 Abril 2021
Data De Atualização: 23 Abril 2024
Anonim
Diferença entre Deadlock e fome no sistema operacional - Tecnologia
Diferença entre Deadlock e fome no sistema operacional - Tecnologia

Contente


Deadlock e Starvation são as condições em que os processos que solicitam um recurso atrasaram por muito tempo. Embora impasse e fome ambos sejam diferentes um do outro em muitos aspectos. Impasse é uma condição em que nenhum processo prossegue para execução e cada um aguarda recursos que foram adquiridos pelos outros processos. Por outro lado, em Fome, o processo com altas prioridades usa continuamente os recursos, impedindo o processo de baixa prioridade para adquirir os recursos. Vamos discutir mais algumas diferenças entre deadlock e fome com a ajuda do gráfico de comparação mostrado abaixo.

  1. Gráfico de comparação
  2. Definição
  3. Principais diferenças
  4. Conclusão

Gráfico de comparação

Base para ComparaçãoImpasseFome
BasicO impasse é onde nenhum processo prossegue e é bloqueado.A fome é onde os processos de baixa prioridade são bloqueados e o processo de alta prioridade prossegue.
Condição emergenteA ocorrência de exclusão mútua, espera e espera, sem preempção e espera circular simultaneamente.Execução de prioridades, gerenciamento descontrolado de recursos.
Outro nomeEspera circular.Lifelock.
RecursosEm conflito, os recursos solicitados são bloqueados pelos outros processos.No início, os recursos solicitados são usados ​​continuamente por processos de alta prioridade.
PrevençãoEvitando exclusão mútua, espera e espera e espera circular e permitindo a preempção. Envelhecimento.


Definição de Deadlock

Deadlock é uma situação em que os vários processos da CPU competem pelo número finito de recursos disponíveis na CPU. Aqui, cada processo retém um recurso e aguarda para adquirir um recurso retido 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 pelo R2. Portanto, os processos P1 e P2 formam um impasse.

O impasse é um problema comum em sistemas operacionais de multiprocessamento, sistemas distribuídos e também em sistemas de computação paralela. Existem quatro condições que devem ocorrer simultaneamente para aumentar a condição de conflito, que são Exclusão mútua, Espera e espera, Sem preempção e Espera circular.


  • Exclusão mútua: Somente um processo de cada vez pode usar um recurso se outro processo solicitar o mesmo recurso, ele deverá aguardar até que o processo usando o recurso o libere.
  • Espera e espera: Um processo deve estar mantendo um recurso e aguardando para adquirir outro recurso mantido por outro processo.
  • Sem Preempção: O processo que mantém os recursos não pode ser antecipado. O processo que mantém o recurso deve liberá-lo voluntariamente quando concluir sua tarefa.
  • Espera circular: O processo deve aguardar recursos de maneira circular. Suponha que temos 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 mantido por P0.

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

Definição de Inanição

A fome pode ser definida como quando uma solicitação de processo para um recurso e esse recurso foi usado continuamente pelos outros processos, então o processo solicitante enfrenta a fome. No início, um processo pronto para executar aguarda a CPU alocar o recurso. Mas o processo precisa esperar indefinidamente, pois os outros processos bloqueiam continuamente os recursos solicitados.

O problema da fome geralmente ocorre em algoritmo de agendamento prioritário. No algoritmo de agendamento de prioridade, o processo com prioridade mais alta sempre recebe o recurso, impedindo que o processo de prioridade mais baixa obtenha o recurso solicitado.

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

  1. Em um impasse, nenhum dos processos prossegue para execução, cada processo é bloqueado aguardando os recursos adquiridos pelo outro processo. Por outro lado, a fome é uma condição em que os processos que possuem maior prioridade podem adquirir os recursos continuamente, impedindo que os processos de baixa prioridade adquiram recursos, resultando no bloqueio indefinido dos processos de baixa prioridade.
  2. O impasse surge quando quatro condições Exclusão mútua, espera e espera, sem preempção e espera circular ocorre simultaneamente. No entanto, a fome ocorre quando o processo prioridades foram aplicadas durante a alocação de recursos ou existe um gerenciamento descontrolado de recursos no sistema.
  3. O impasse geralmente é chamado pelo nome espera circular considerando que a fome é chamada Bloqueio vivido.
  4. Em Deadlock, os recursos são bloqueados pelo processo, enquanto, com fome, os processos são continuamente usados ​​pelos processos com altas prioridades.
  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 por envelhecimento.

Conclusão:

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