O deadlock é um fenômeno que pode ocorrer em sistemas operac...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: B - Ele pode ser evitado dinamicamente, pela alocação cuidadosa de recursos entre os processos.
Para compreender a resposta correta, é fundamental ter um entendimento sobre o que é um deadlock em sistemas operacionais. Um deadlock é uma situação onde dois ou mais processos ficam impedidos de continuar suas execuções porque cada um está aguardando a liberação de um recurso que está sendo ocupado por outro processo. Em outras palavras, cria-se um ciclo de dependência no qual nenhum processo pode prosseguir.
Existem quatro condições necessárias para que um deadlock ocorra, conhecidas como as condições de Coffman:
- Exclusão Mútua: pelo menos um recurso deve estar em um estado não compartilhável.
- Posse e espera: um processo deve estar segurando pelo menos um recurso e esperando adquirir recursos adicionais que estão sendo atualmente segurados por outros processos.
- Não Preempção: os recursos já adquiridos pelos processos não podem ser forçadamente retirados.
- Espera Circular: deve haver um conjunto de processos, {P1, P2, ..., Pn}, de tal forma que P1 está esperando por um recurso que é segurado por P2, P2 está esperando por um recurso segurado por P3 e assim por diante até Pn que está esperando por um recurso segurado por P1.
A questão menciona a prevenção de deadlocks, o que é possível por meio de uma alocação cuidadosa de recursos entre os processos. Isso pode envolver a verificação dos estados dos recursos e a análise de riscos de deadlock antes de alocar o recurso a um processo, garantindo que pelo menos uma das condições de Coffman não seja atendida e, portanto, o deadlock seja evitado.
As outras alternativas são equívocos comuns sobre deadlocks:
- Os deadlocks podem ocorrer tanto em sistemas com um único processador quanto em sistemas multiprocessados.
- Existem vários algoritmos e técnicas para detectar e resolver deadlocks, não sendo necessário reiniciar o computador sempre que ocorrerem.
- A questão da lentidão dos processos devido à atribuição de prioridades é diferente do problema de deadlock, que é a paralisação completa de atividade dos processos envolvidos.
- O chamado Algoritmo do Avestruz é uma estratégia que consiste em ignorar o problema do deadlock, assumindo que seu custo será menor do que tentar resolvê-lo. Ele não identifica nem reinicia processos.
Sendo assim, ao entender a natureza do deadlock e as estratégias para sua prevenção, fica evidente que a alternativa B é a correta. Ela reflete um método real e viável para evitar a ocorrência de deadlocks em sistemas operacionais.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Algoritmo do Avestruz: enfia a cabeça no chão e finge que não vê. Ou seja o algoritmo finge que não viu nada.
Algoritmo do banqueiro, onde as alocações são postas cuidadosamente e assim desviando o deadlock.
Um deadblock é, em termos práticos, uma restrição, do SO, imposta a 2 ou mais processos, que estão sendo executados, a pararem, devido à ausência de recursos.
CESPE - 2018 - MPE-PI - Analista. Uma das causas de deadlocks em sistemas operacionais é a disputa por recursos do sistema que podem ser usados apenas por um processo de cada vez. CERTO
A) Pode acontecer também em sistemas multiprocessados, pois está ligado a uso concorrente de recursos e não a processamento.
B) Algoritmo do banqueiro.
C) Existem sim maneiras impedi-lo (banqueiro) e também de resolvê-lo, bem como ignorá-lo (avestruz).
E) algoritmo do avestruz ignora a ocorrência do deadlock (esconde a cabeça no chão)
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo