-
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.
-
Exclusão mutua, ou mutex= Tecnica para evitar que dois processos, tenham acessos simultâneos a um recurso.
Posse e espera: Cada processo pode silicitar recurso e ficar bloqueando o recurso enquanto o outro está usando.
Não preepmção- Escalonador não retira processos em execução.
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.
-
Letra E
Deve SEMPRE haver as 4 condições abaixo para a ocorrência de deadlock. Na ausência de pelo menos uma dessas condições, descarta-se a possibilidade de sua ocorrência.
I - Exclusão mútua: Pelo menos um recurso deve ser alocado em modo não compartilhável, isto é, apenas um processo de cada vez pode usar o recurso. Se outro processo solicitar este recurso, o processo solicitante deve ser atrasado até o recurso ter sido liberado.
II - Posse e espera: Pelo menos um recurso deve estar alocado a um processo e este processo estar aguardando para adquirir recursos adicionais que, no momento, estejam sendo mantidos por outros processos.
III - Inexistência de preempção (Não-preemptivo): Recursos não podem ser interceptados, isto é, um recurso só pode ser liberado voluntariamente pelo processo que o estiver mantendo após esse processo ter concluído sua tarefa.
IV - Espera Circular: Deve existir um conjunto de processos (P1, P2, ...Pn) em espera, de tal modo que P1 esteja esperando por um recurso que está alocado a P2, P2 esteja esperando por um recurso que está alocado a Pn-1, Pn-1 esteja esperando por um recurso que está alocado a Pn e Pn esteja esperando por um recurso que está alocado a P1.
-
Gabarito E
Condições para Deadlock ocorrer:
Exclusão mútua: cada recurso só pode estar alocado a um único processo em um determinado instante;
Posse e Espera: um processo, além dos recursos já alocado, pode estar esperando por outros recursos;
Não-Preempção: un recurso nao pode ser liberado de um processo só porque outros processos desejam o mesmo rrecurso;
Espera circular: um processo pode ter de esperar por um recurso alocado a outro processo e vice-versa.
"Retroceder Nunca Render-se Jamais !"
Força e Fé !
Fortuna Audaces Sequitur !