• Matéria: Informática
  • Autor: lindainessousa
  • Perguntado 8 anos atrás

1º Cite uma situação que proporcione um problema de starvation, dando um possível solução

2º Quais as condições para se obter um deadlock? Quais as possíveis soluções?

Respostas

respondido por: jvsilvictorox7rfj
4

Imagine que o sistema de gerenciamento da CPU dê sempre prioridade para os processos de menor duração.

Você tem um processo que dura 10 segundos, mas sempre chegam processos com  tempo entre 1 e 9 segundos.  Desta forma há um problema crítico pois os processos de menor tempo receberão prioridade e o de 10 segundos pode nunca ser colocado em execução.

Uma forma de resolver isto é mudar o tipo de regra do escalonador. Uma das opções é usar o método de de Loteria, que sorteia fichas pros processos e os sorteia ou mesmo um sistema mais simples como o FIFO. Desta forma tem-se garantia de que o processo de 10 segundos, que antes não era executado, fará uso da CPU.




Um DeadLock é quando o sistema atinge um estado em que ele não é capaz de sair dali. Não há um "caminho" para que ele volte a atingir outros estados. Ele fica preso num único estado.

Uma possível solução é fazer a modelagem desse sistema, seja por Redes de Petri, Autômatos, Arvore de Alcançabilidade ou algum outro modelo para detectar esse estado que gera o deadlock e quais são os estados que fazem com que o sistema caminhe para este local. Para então implementar proteções/condições que façam com que aquele estado que gera o problema não seja atingido ou garantir uma forma de sair dele, caso o atinja.





lindainessousa: Obrigada!!!
jvsilvictorox7rfj: Por nada, moça :)
lindainessousa: ^_^
Perguntas similares