
Gráfico de comparação
Base para Comparsão | Impasse | Fome |
---|---|---|
Basic | O 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 crescente | A 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 nome | Espera circular. | Lifelock. |
Recursos | Em 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ção | Evitando 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.

- 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
- 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.
- 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.
- O deadlock é frequentemente chamado pelo nome de wait circular, enquanto o starvation é chamado de Lived lock .
- Em Deadlock, os recursos são bloqueados pelo processo, enquanto na inanição, os processos são continuamente usados pelos processos com alta prioridade.
- 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.