Em um sistema operacional de computador, três processos estã...
Em um sistema operacional de computador, três processos estão na seguinte situação:
− o processo P1 tem a posse do recurso R1.
− o processo P2 tem a posse do recurso R2.
− o processo P3 tem a posse do recurso R3.
O processo P1 solicita o recurso R2, o processo P2 solicita o recurso R3, e o processo P3 solicita o recurso R1. Sobre essa situação, é correto afirmar que
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: B - tem-se uma condição de deadlock.
Explicação:
O conceito de deadlock, ou impasse, é uma situação que ocorre em sistemas operacionais quando dois ou mais processos ficam bloqueados indefinidamente, esperando por recursos que estão sendo segurados uns pelos outros. Para que um deadlock ocorra, quatro condições devem ser atendidas simultaneamente:
- Exclusão Mútua: pelo menos um recurso deve ser mantido em modo não compartilhável.
- Retenção e espera: um processo deve estar segurando pelo menos um recurso e esperando por outro.
- Falta de preempção: recursos não podem ser retirados à força.
- Espera circular: deve haver um ciclo fechado de processos, cada um dos quais está esperando por um recurso detido pelo próximo membro do ciclo.
Na situação descrita, temos três processos (P1, P2 e P3) e três recursos (R1, R2 e R3). Cada processo já detém um recurso e está solicitando outro que está com o próximo processo nessa cadeia, o que forma um ciclo de espera:
- P1 detém R1 e solicita R2, que é detido por P2.
- P2 detém R2 e solicita R3, que é detido por P3.
- P3 detém R3 e solicita R1, que é detido por P1.
Essa sequência de pedidos cria uma espera circular, onde cada processo está esperando por um recurso que está em posse de outro processo, formando um ciclo sem fim. Ninguém pode avançar, pois cada um está segurando o recurso que o outro precisa.
Portanto, a alternativa correta é a B, porque a situação apresentada preenche todas as quatro condições necessárias para que um deadlock aconteça. Não é relevante quem não solicitou qual recurso, mas sim que existe um ciclo de espera fechado que leva ao impasse.
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
b-
condicoes para deadlock:
1- mutex (exclusao mutua) - cada recurso esta ou em um processo ou disponivel
2- posse e espera - processos que retêm recursos concedidos antes podem querer novos recursos.
3- nao-preempcao - recursos têm que ser liberados pelo procoeosso que os retém. Em escalonamento preemptivo, um processo de maior prioridade pode obter recurso/ CPU passando à frente de outro.
4- espera circular - cada processo em uma cadeia espera pelo recurso do seguinte, como na situacao da questao.
Definição de Deadlock
Deadlock é definido da seguinte forma: Um conjunto de processos do Sistema Operacional está em situação de Deadlock se todo processo pertencente ao conjunto estiver esperando por um evento que somente outro processo desse mesmo conjunto poderá fazer acontecer.
Condições para ocorrência de Deadlock
Assim, nenhum processo consegue executar recurso que precisa, ou liberar recurso que está de posse, ou ser acordado, pois o recurso que precisa está ocupado.
Vale detalhar que recurso é uma sequência de eventos necessários ao uso de um processo, assim pode ser dispositivos ou qualquer item compartilhado.
As condições para se entrar no estado de Deadlock:
Exclusão Mútua: todo recurso está ou associado a um único processo ou disponível;
Posse e Espera: processos que retêm recursos podem solicitar novos recursos;
Não Preempção: recursos concedidos previamente não podem ser forçosamente tomados;
Espera Circular: deve haver uma cadeia circular de dois ou mais processos, na qual cada um está à espera de recursos retido pelo membro seguinte dessa cadeia.
Todas essas condições devem ocorrer simultaneamente para que ocorra Deadlock. Se uma dessas condições não ocorrer, não haverá deadlock.
Fonte: https://www.oficinadanet.com.br/post/12786-sistemas-operacionais-o-que-e-deadlock
R1 ---------- P3
| |
P1 R3
| |
R2 ---------- P2
Tentei montar mais ou menos a situação apresentada no enunciado.
Todos os processos estão parado aguardando recursos que estão sendo utilizados por outros processos, tem-se, então, uma cadeia circular, ocorrendo deadlock;
Att,
Foco na missão!
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo