Em relação às condições para que ocorra um deadlock, àquel...

Próximas questões
Com base no mesmo assunto
Q215853 Sistemas Operacionais
Em relação às condições para que ocorra um deadlock, àquela em que recursos concedidos previamente a um processo não podem ser forçosamente tomados desse processo e sim, explicitamente liberados por ele, denomina-se condição de
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: D - não preempção

Deadlock é uma situação em que um conjunto de processos fica permanentemente bloqueado porque cada processo está esperando por um recurso que está sendo retido por outro processo no conjunto. Para que um deadlock ocorra, quatro condições devem ser satisfeitas simultaneamente:

1. Exclusão Mútua: Pelo menos um recurso deve estar em um estado não compartilhável. Em outras palavras, apenas um processo pode usar o recurso de cada vez.

2. Posse e Espera: Um processo que está segurando pelo menos um recurso está esperando para adquirir recursos adicionais que estão sendo segurados por outros processos.

3. Não Preempção: Recursos não podem ser tomados à força de processos que os possuem; eles devem ser liberados explicitamente pelo processo que os detém. É exatamente essa condição que a questão está descrevendo.

4. Espera Circular: Um conjunto de processos {P1, P2, ..., Pn} deve existir tal que P1 esteja esperando por um recurso que é mantido por P2, P2 esteja esperando por um recurso que é mantido por P3, e assim por diante, até que Pn esteja esperando por um recurso que é mantido por P1, formando um ciclo fechado.

A alternativa correta é a D - não preempção porque ela descreve a condição onde os recursos concedidos previamente a um processo não podem ser forçosamente retirados, somente podendo ser liberados explicitamente pelo próprio processo. Esta é uma das condições necessárias para a ocorrência de um deadlock.

Entender essas quatro condições é essencial para resolver questões que envolvem deadlock, já que elas fornecem a base para identificar e evitar situações onde múltiplos processos possam ficar bloqueados indefinidamente esperando por recursos.

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

Gab. D = Não preempção.

Por falta de atenção marquei o item E que na verdade é o deadlock. Porém a questão pede a condição para que ocorra um deadlock.

O item A é só para confundir. Os itens B, C e D são condições que antecedem o deadlock conforme a ordem citada abaixo.


Fonte: http://pt.wikipedia.org/wiki/Deadlock

Condições necessárias para a ocorrência de deadlock

No texto acima, foi dito que o deadlock ocorre naturalmente em alguns sistemas. No entanto, é necessário ressaltar que tais sistemas precisam obedecer a algumas condições para que uma situação de deadlock se manifeste.

Essas condições estão listadas abaixo, onde as três primeiras caracterizam um modelo de sistema, e a última é o deadlock propriamente dito: processos que estejam de posse de recursos obtidos anteriormente podem solicitar novos recursos. Caso estes recursos já estejam alocados a outros processos, o processo solicitante deve aguardar pela liberação do mesmo;

  • Condição de não-preempção: recursos já alocados a processos não podem ser tomados a força. Eles precisam ser liberados explicitamente pelo processo que detém a sua posse;
  • Condição de exclusão mútua: cada recurso ou está alocado a exatamente um processo ou está disponível;
  • Condição de posse-e-espera: cada processo pode solicitar um recurso, ter esse recurso alocado para si e ficar bloqueado esperando por um outro recurso;
  • Condição de espera circular: deve existir uma cadeia circular de dois ou mais processos, cada um dos quais esperando por um recurso que está com o próximo membro da cadeia.
Condições para que ocorra um deadlock

1) Exclusão mútua;
2) Posse e espera;
3) Não preempção; e
4) Espera cirsular.

Analisando as assertivas:

a) preempção -> NÃO é uma condição para que ocorra o deadlock.
b) exclusão mútua -> Cada recurso só pode estar alocado a um único processo em um determinado instante.
c) posse e espera -> Um processo pode esperar por um recurso alocado a outro e vice e versa.
d) não preempção -> Um recurso NÃO pode ser liberado de um processo apenas porque outros processos o desejam.
e) espera circular -> Um processo pode estar esperando por outros recursos além daqueles já alocados.
Analisando as alternativas.

Exclusão Mútua;
-  Apenas um processo por vez pode alocar e manipular um recurso
-  Recurso de uso exclusivo
-  Impressora, CD/DVD para gravação

Posse e Espera;
-  Um processo, de posse de um recurso, pode solicitar novos recursos

Não-Preempção;
- Um recurso não pode ser removido explicitamente do processo
Ex.: Impressora, 1. CD (Gravação
)

Espera Circular.
- Ocorre CICLO no GRAFO de alocação
Deadlock- falha para continuar algo porque 2 programas necessitam resposta um do outro antes de completar uma operação.


No Preemption: O.S. não deve realocar recursos que já o foram; eles devem ser liberados pelo processo, de modo voluntário.
marcos sampaio, exceto a alternativa "a", todas as outras, em conjunto, geram deadlock. A alternativa "e" não eh o deadlock, como vc citou, mas também uma das condiçoes para ocorrencia deste.
Segundo Tanenbaum:

não-preempção: recursos precisam ser liberados explicitamente pelo processo que detém a sua posse;
exclusão mútua: cada recurso ou está alocado a exatamente um processo ou está disponível;
posse-e-espera: o processo tem um recurso, mas fica bloqueado esperando por outro recurso;
espera circular:  dois ou mais processos formam um ciclo, cada um esperando por um recurso que está com o próximo.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo