professor
-Exclusão Mútua: Quando um recurso só pode ser usado por um processo de cada vez.
-Manter e Esperar: Quando dois ou mais processos necessitam de um recurso só que nenhum deles abre mão deste recurso para outro.
-Não preempção: Quando o recurso só pode ser liberado de forma voluntária pelo processo que está usando-o.
-Espera Circular: Quando dois ou mais processos ficam em espera por recursos utilizados por outro processo, este na mesma condição.
Em sistemas distribuídos é difícil de detectar, evitar e prevenir o deadlock, Tannenbaum propõe 4 formas para lidar com isso:
1- Ignorar: ignorar o problema.
2- Detecção: deixe que deadlock ocorra, detecte, e então lide com eles.
3- Prevenção: tornar impossível a ocorrência de deadlock.
4- Evitar: escolher a alocação de recursos com cuidado, para que os impasses não ocorram.
A primeira proposta é muito simples, basta ignorar o problema.
A segunda proposta se concentra, em primeiro detectar o problema, e tentar resolve-lo, a forma de resolver o problema, é “matar” um dos processos.
A terceira proposta é tornar impossível que ocorra deadlock, embora seja difícil fazer isto.
A última proposta é muito difícil de ser implementada, porque não é muito prática em sistemas reais, a principal dificuldade esta em saber com precisão, o momento em que o processo utilizará o recurso.
Algoritmos de detecção mais usados na de deadlock
Detecção Centralizada: Nesse tipo de detecção, são mantidas informações sobre os processos e os recursos alocados a eles, formando um grafo de recursos alocados. Toda máquina possui um grafo desses, porém deve-se manter um grafo único, com a união de todos outros grafos do sistema. Nesses grafos ocorre à procura de ciclos. Quando encontrado, um