No que se refere aos sistemas operacionais, julgue os itens ...
Um deadlock pode surgir quando soluções que apresentam busy waiting são empregadas em sistemas que utilizam prioridade para escalonar os processos.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - certo
O fenômeno de deadlock, ou impasse, ocorre em sistemas operacionais quando dois ou mais processos ficam bloqueados indefinidamente, aguardando por um evento que somente um processo bloqueado pode causar. Isso é um problema clássico de sincronização entre processos e pode ser causado por diversas condições simultâneas, incluindo a disputa por recursos não compartilháveis e a espera circular por recursos já alocados.
Ao abordar a questão do busy waiting, estamos falando de uma técnica de sincronização que envolve um processo que espera ativamente por uma condição sem liberar o processador. Ou seja, o processo fica em um loop constante verificando se ele pode prosseguir, o que pode consumir recursos valiosos de CPU desnecessariamente.
Quando um sistema utiliza prioridades para escalonar os processos, pode ocorrer uma situação conhecida como inversão de prioridade. Isso acontece quando um processo de alta prioridade espera por um recurso bloqueado por um processo de menor prioridade, o que pode levar ao deadlock se, por exemplo, um processo de prioridade intermediária conseguir executar e bloquear outros recursos necessários para o processo de menor prioridade completar sua tarefa e liberar o recurso desejado pelo processo de alta prioridade.
Portanto, é correto afirmar que deadlocks podem surgir quando soluções de busy waiting são empregadas em sistemas que utilizam prioridade para escalonar os processos. Isso se deve ao risco de que, enquanto um processo de baixa prioridade está em busy waiting, segurando um recurso necessário para processos de prioridade mais alta, esses outros processos ficam bloqueados, criando uma situação de impasse se eles mantiverem outros recursos que o processo em busy waiting necessita.
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
Deadlock ocorre quando dois processos ficam bloqueados por alguma pendência não realizada. Geralmente os um processo bloqueado nesse caso, aguarda o resultado de um outro processo também bloqueado.
Como informação adicional, as quatro condições necessárias para se entrar no estado de Deadlock são:
1. Exclusão Mútua: todo recurso está ou associado a um único processo ou disponível;
2. Posse e Espera: processos que retêm recursos podem solicitar novos recursos;
3. Não Preempção: recursos concedidos previamente não podem ser forçosamente tomados; e
4. 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.
Não entendi, se tem prioridade para escalonamento, então porque existe o deadlock!?
Quando recursos são alocados segundo um esquema de prioridades, é possível que um determinado processo espere indefinidamente por um
recurso conforme processos com prioridades mais altas venham chegando.
Certo.
Vamos pensar em um sistema que utiliza o algoritmo de "Prioridade" no escalonamento de processos. Nesse cenário certamente ocorre a preempção, condição que descarta a ocorrência de deadlock.
Porém, a partir do momento que emprego a solução de "busy waiting", isso agora passa a ser uma particularidade tratada pela Exclusão Mútua, em que processos não podem adquirir um recurso qdo ele está sendo utilizado por outro processo. Logo, isso passa a ser uma das condições para o Deadlock.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo