Escolar Documentos
Profissional Documentos
Cultura Documentos
Modelo do Sistema Caracterizao de Deadlock Mtodos para Tratamento de Deadlocks Preveno de Deadlock Evitando Deadlock Deteco de Deadlock Recuperao de Deadlock Abordagem Combinada para Tratamento de Deadlock
3.1
Recursos
Tipos de Recursos R1, R2, . . ., Rm
ciclos de UCP, espao de memria, dispositivos de E/S
Processos precisam acessar recursos ordenadamente Supor que um processo mantm um recurso A
No mesmo tempo outro processo mantm B e requisita A Os dois so bloqueados e permanecem assim
3.2
Recursos (1)
Recursos preemptveis
Podem ser retirados de um processo sem efeitos negativos
Recursos no-preemptveis
Causa falha do processo se forem retirados do mesmo
3.3
Recursos (2)
3.4
O Problema Deadlock
Definio formal: Um conjunto de processos esta em deadlock se cada processo do conjunto est esperando por um evento que somente outro processo no conjunto pode causar. Usualmente o evento a liberao de um recurso Nenhum dos processos pode:
executar Liberar recurso Ser acordado
3.5
Caracterizao de Deadlock
Deadlock pode existir se 4 condies acontecem simultaneamente. Excluso Mtua:
Cada recurso alocado a apenas um processo por vez ou
livre
Manter e esperar:
processos mantendo recurso podem requisitar recursos
adicionais.
Sem preempo:
um recurso previamente garantido no pode ser retirado do
processo
Espera Circular:
Deve haver uma cadeia circular de 2 ou mais processos Cada um esta esperando por recurso mantido pelo prximo
membro da cadeia
3.6
3.7
3.8
sistema.
3.9
Pi requisita instncia de Rj
Pi
Rj
3.11
3.12
3.13
Fatos
Se o grafo no contm ciclos sem deadlock. Se o grafo contm um ciclo
Se apenas uma instncia por tipo de recurso, deadlock. Se vrias instncias por tipo de recurso, possibilidade de
deadlock.
3.14
3.15
3.16
3.17
O Algoritmo da Avestruz
Faz de conta que no existe problema Razovel se
deadlocks ocorrem muito raramente Custo de preveno muito alto
UNIX and Windows utilizam esta abordagem um compromisso entre (relao custo/benefcio)
Convenincia Correo
3.18
Deteco de Deadlock
Permite sistema entrar em estado de deadlock Algoritmo de Deteco Esquema de Recuperao
3.19
Periodicamente invocar algoritmo que procura ciclos no grafo. Algoritmo para detectar um ciclo no grafo requer uma ordem de n2 operaes, onde n o numero de vertices no grafo.
3.20
Pergunta: Esse sistema esta em deadlock? Se sim quais processos esto envolvidos?
3.21
Deteco de Ciclo
3.22
4. 5. 6.
Para cada nodo N no grafo execute os 5 passos seguintes em que N o nodo inicial. Inicialize L como uma lista vazia e assinale todos os arcos como desmarcados Insira o nodo atual no final da lista L e verifique se o nodo agora aparece em L 2 vezes. Sim, grafo contm ciclo (assinalado em L), fim. A partir do referido nodo, verifique se existe algum arco de sada desmarcado. Sim, v para 5. No, v para 6. Escolha aleatriamente um arco de sada desmarcado e marque- Ento siga esse arco para obter o novo nodo atual e v para 3 O final foi alcanado. Remova-o e volte para o nodo anterior isto aquele que era atual antes desse marque-o como atual e v para 3. Se esse for o nodo inicial, o grafo no conter ciclo algum e o algoritmo terminar.
3.23
cada recurso. Vetor de recursos disponveis : um vetor m indica o numero de recursos disponveis de cada tipo. Matriz de Alocao Atual: uma matriz n x m define o numero de recursos de cada tipo atualmente alocados para cada processo. Matriz de Requisies: uma matriz n x m indica a requisio atual de cada processo. Se Request [ij] = k, ento processo Pi esta requisitando mais k instncias do recurso Rj.
Condio invariante :
Somatrio das instncias j alocadas + instncias ainda
3.24
3.25
sima linha de R seja menor ou igual correspondente de A. 2. Se esse processo for encontrado, adicione a i-sima linha de C correspondente de A, marque o processo e volte para o passo 1. 3. Se no existir esse processo o algoritmo terminar.
3.26
Considere agora uma pequena modificao: P3 R= (2,1,0,1) Quando procurar por deadlocks?
INE5355 Sistemas Operacionais I 3.27
Recuperao do Deadlock
Selecionar uma vitima minimizar custo. Voltar atrs (Rollback) retornar para algum estado seguro, reiniciar o processo para aquele estado. Para isto necessrio algum tipo de checkpoint file para possibilitar reinicio. Postergao (Starvation) o mesmo processo pode ser escolhido como vitima, incluir nmero de rollback no fator custo. A habilidade para retirar um recurso de um processo, entrega-lo a outro processo e depois devolv-lo ao primeiro, sem que o processo perceba, altamente dependente da natureza do recurso.
3.28
completar. Recursos que o processo tem usado. Recursos que o processo precisa para completar. Quantos processos ser necessrio terminar. O processo interativo ou batch?
3.29
Evitando Deadlock
possvel um algoritmo que permita sempre evitar deadlocks fazendo sempre a escolha certa? Requer que o sistema tenha a priori alguma informao adicional disponvel. Modelo mais simples e til requer que cada processo declare o maximo numero de recursos de cada tipo que ele pode precisar. O algoritmo evitar-deadlock dinamicamente examina o estado de alocao do recurso para assegurar que a condio espera circular no acontecer. O estado de alocao do recurso definido pelo numero de recursos disponveis e alocados e a demanda maxima dos processos.
3.30
Estado seguro
Algoritmos se baseiam no conceito de estado seguro. Quando um processo requisita um recurso disponvel, o sistema deve decidir se alocao imediata deixa o sistema em um estado seguro. Sistema esta em um estado seguro se existe uma seqncia segura para todos os processos. Seqncia <P1, P2, , Pn> segura se para cada Pi, os recursos que Pi pode ainda requisitar podem ser satisfeitos pelos recursos disponveis atualmente + recursos mantidos por todos Pj, com j<I.
Se as necessidades de recursos de Pi no esto disponveis imediatamente, ento Pi pode esperar at todos Pj terminar. Quando Pj termina, Pi pode obter os recursos necessrios, executar, retornar recursos alocados e terminar. Quando Pi terminar, Pi+1 pode obter seus recursos necessrios e assim em diante.
3.31
Fatos
Se um sistema esta em um estado seguro sem deadlocks. Se um sistema esta em um estado inseguro possibilidade de deadlock. Evitar assegurar que um sistema nunca ir entrar em um estado inseguro.
3.32
3.33
Algoritmo Banqueiro
Um algoritmo de escalonamento que pode evitar deadlocks, Dijkstra(1965), uma extenso do algoritmo de deteco de deadlock para uma instncia. O modelo : um banqueiro de uma pequena cidade pode negociar com um grupo de clientes para os quais ele libera linhas de crdito. O que o algoritmo faz verificar se a liberao de uma requisio capaz de levar a um estado inseguro.
Sim, requisio negada No, requisio atendida
O banqueiro sabe que nem todos os clientes precisam imediatamente de todas as suas unidades de crdito, assim ele tem menos unidades do que o total necessrio.
3.34
(a)
(c)
3.35
Algoritmo Banqueiro MI
Mltiplas instncias. Cada processo deve a priori pedir mximo uso. Quando um processo requisita um recurso ele pode ter de esperar. Quando um processo consegue todos seus recursos ele deve retorna-los em um tempo finito.
3.36
fazer n = numero de processos, e m = numero de tipos de recursos. Available: Vetor tamanho m. Se available [j] = k, existem k instncias de recurso tipo Rj disponveis. Max: matriz n x m. Se Max [i,j] = k, ento processo Pi pode requisitar no mximo k instncias do recurso tipo Rj. Allocation: matriz n x m. Se Allocation[i,j] = k ento Pi esta alocando atualmente k instncias de Rj. Need: matriz n x m. Se Need[i,j] = k, ento Pi pode necessitar mais k instncias de Rj para completar suas tarefas.
Need [i,j] = Max[i,j] Allocation [i,j].
3.37
Algoritmo Segurana
1. Work e Finish so vetores de tamanho m e n, respectivamente. Inicializar:
Work = Available Finish [i] = false for i - 1,3, , n.
3. Work = Work + Allocationi Finish[i] = true passo 2. 4. Se Finish [i] == true para todos i, ento o sistema esta em um estado seguro.
3.38
3.39
3.40
Exemplo (Cont.)
O contedo da matriz Need definido por Max Allocation. Need ABC P0 743 P1 122 P2 600 P3 011 P4 431 O sistema esta em um estado seguro visto que a seqncia < P1, P3, P4, P2, P0> satisfaz o critrio de segurana.
3.41
3.42
Exemplo
O estado atual seguro? Supor PB requisite uma impressora, pode ser atendido? Aps alocar impressora para PB, PE requisita outra, pode atender?
INE5355 Sistemas Operacionais I 3.43
Preveno de Deadlock
Atacando a condio de Excluso Mtua . Alguns recursos (ex. dispositivo impressora) podem ser tratados com um gerente (spool )
Apenas o gerente utiliza o dispositivo Eliminando deadlock
3.44
Preveno de Deadlock
Atacando a condio de Manter e esperar. Garantir que sempre que um processo requisita um recurso, ele no mantm qualquer outro recurso.
Requer o processo requisitar e alocar todos seus recursos
antes de comear executar, ou permite processo requisitar recursos apenas quando o processo no tem. Processo no precisa esperar por recursos Problemas : Pode no ter conhecimento dos recursos necessrios no incio Amarra recursos que outros processos poderiam usar Variao Processos devem desistir dos recursos Ento requisitar os imediatamente necessrios
3.45
3.46
Se i>j, ento A no tem permisso de requisitar j Se i<j, ento B no tem permisso de requisitar i
INE5355 Sistemas Operacionais I 3.47
3.48
permitindo o uso de uma abordagem otima para cada recurso no sistema. Particionar recursos em classes ordenadas hierarquicamente.
Usar as tcnicas mais apropriadas para tratar deadlocks dentro de cada classe.
Preveno (negao de manter e esperar) ou evitar; evitar (supe que processos declarem recursos necessrios) ou preveno (ordenao); preveno (preempo);
3.49