Em sistemas operacionais, uma das condições necessárias par...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a letra D, que descreve a existência de uma cadeia circular de processos, onde cada processo está esperando por um recurso que está em posse do próximo processo da cadeia. Este cenário é um dos principais indicativos de um deadlock ou impasse.
O conceito de deadlock em sistemas operacionais é fundamental e refere-se a uma situação em que dois ou mais processos ficam bloqueados indefinidamente, cada um aguardando por um recurso que está sendo utilizado por outro processo. Para que um deadlock ocorra, quatro condições devem ser atendidas simultaneamente:
- Exclusão Mútua: Cada recurso é atribuído a no máximo um processo por vez.
- Posse e Espera: Processos que já possuem recursos podem solicitar novos recursos.
- Não Preempção: Recursos não podem ser tomados à força de um processo; eles devem ser liberados voluntariamente.
- Espera Circular: Deve existir um conjunto de processos esperando por recursos formando uma cadeia circular, onde cada processo espera por um recurso que está com o próximo processo na cadeia.
A alternativa D é a correta porque descreve diretamente a condição de Espera Circular, a qual é imprescindível para a configuração de um deadlock. As demais alternativas não atendem às condições clássicas para ocorrência de deadlocks e, portanto, são incorretas.
Para resolver questões sobre deadlocks, é essencial entender essas quatro condições e como elas se inter-relacionam para criar uma situação onde os processos não possam prosseguir. Compreender os mecanismos utilizados pelos sistemas operacionais para prevenção, detecção e recuperação de deadlocks também é relevante para o estudo aprofundado deste tópico.
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
Uma das 4 situações em que ocorrem Deadlock, analogia com uma escada.
Espera Circular: Deve existir um encadeamento circular de dois ou mais processos; cada um deles encontra-se à espera de um recurso que está sendo usado pelo membro seguinte dessa cadeia (monopoliza o recurso – ocupa um degrau e se recusa a retroceder).
Gabarito D
Deadlock (interbloqueio, blocagem, impasse), no contexto de sistemas operacionais (SO), refere-se a uma situação em que ocorre um impasse, e dois ou mais processos ficam impedidos de continuar suas execuções - ou seja, ficam bloqueados, esperando uns pelos outros.Trata-se de um problema bastante estudado em sistemas operacionais e banco de dados, pois é inerente à própria natureza desses sistemas.
O deadlock ocorre com um conjunto de processos e recursos não-preemptíveis, onde um ou mais processos desse conjunto está aguardando a liberação de um recurso por um outro processo, o qual, por sua vez, aguarda a liberação de outro recurso alocado ou dependente do primeiro processo.
A definição textual de deadlock por ser muito abstrata, é mais difícil de se compreender do que a representação por grafos, que será resumida mais adiante. No entanto, algumas observações são pertinentes:
O deadlock pode ocorrer mesmo que haja somente um processo no SO, considerando que este processo utilize múltiplos threads e que tais threads requisitem os recursos alocados a outros threads no mesmo processo;
O deadlock independe da quantidade de recursos disponíveis no sistema;
Normalmente o deadlock ocorre com recursos, tais como dispositivos, arquivos, memória etc. Apesar de a CPU também ser um recurso para o SO, em geral é um recurso facilmente preemptível, pois existem os escalonadores para compartilhar o processador entre os diversos processos, quando trata-se de um ambiente multitarefa.
Erros de deadlock podem ocorrer em bancos de dados. Suponha que uma empresa tenha vários vendedores e vários pontos de venda ou caixas. O vendedor A vendeu 1 martelo e 1 furadeira. O sistema, então, solicita o travamento do registro da tabela "ESTOQUE", que contém o total de martelos em estoque e, em seguida, solicita o travamento do registro que contém o total de furadeiras em estoque. De posse da exclusividade de acesso aos dois registros, ele lê a quantidade de martelos, subtrai 1 e escreve de novo no registro; o mesmo ocorre com relação ao registro de furadeiras. Observe, no entanto, que existem diversos caixas operando simultaneamente, de forma que, se algum outro caixa, naquele exato instante, estiver vendendo uma furadeira, ele ficará aguardando a liberação do registro das furadeiras para depois alterá-lo. Note que ele só altera os registros depois que for dada exclusividade para ele de TODOS os recursos que ele precisa, ou seja, de todos os registros. Suponha agora que, em outro caixa, foram vendidos 1 furadeira e 1 martelo e que o outro caixa solicitou o travamento do registro com a quantidade de furadeiras e agora quer o acesso ao de martelos; no entanto o registro de martelos está travado para o primeiro caixa. Nenhum deles devolve o recurso (registro) sobre o qual tem exclusividade e também não consegue acesso ao outro registro que falta para terminar a operação. Isto é um deadlock.
"Retroceder Nunca Render-se Jamais !"
Força e Fé !
Fortuna Audaces Sequitur !
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo