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:
4
1º
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.
2º
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.
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.
2º
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!!!
Perguntas similares
6 anos atrás
6 anos atrás
6 anos atrás
8 anos atrás
9 anos atrás