Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para...
-
Upload
julio-canto-jardim -
Category
Documents
-
view
225 -
download
0
Transcript of Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para...
![Page 1: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/1.jpg)
Sistemas Operacionais
![Page 2: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/2.jpg)
Deadlocks
![Page 3: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/3.jpg)
Deadlocks• Problema • Modelo do Sistema • Caracterização• Métodos para Manipulação• Prevenção• Evitar• Detecção • Recuperação
![Page 4: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/4.jpg)
Objetivos
• Devenvolver uma descrição de deadlocks,• os quais impedem que conjuntos de
processos concorrentes completem suas tarefas• Apresentar diferentes métodos para prevenir ou
evitar deadlocks em um sistema computacional
![Page 5: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/5.jpg)
O Problema de Deadlocks • Conjunto de processos bloqueados cada um mantendo
um recurso e esperando para adquirir um recurso, mantido por um outro processo no conjunto
• Exemplo: – Sistema com 2 disk drives– P1 e P2 cada um mantendo um disk drive e cada um
necessitando de um outro• Exemplo: semáforos A e B, iniciados com 1
» P0 P1
» wait (A); wait(B)» wait (B); wait(A)
![Page 6: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/6.jpg)
Exemplo para Atravessar uma Ponte
• Tréfego somente em uma direção• Cada seção da ponte pode ser vista como um recurso• Se ocorre deadlock, pode ser resolvido se um carro
voltar (preempção de recursos e rollback)• Diversos carros podem ter que voltar se ocorre
deadlock• Pode causar starvation
![Page 7: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/7.jpg)
Modelo do Sistema• Tipos de recursos R1, R2, . . ., Rm
• CPU cycles, memory space, I/O devices• Cada tipo de recurso Ri tem Wi instâncias• Cada processo utiliza um recurso da seguinte
forma:– pedido – uso – liberação
![Page 8: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/8.jpg)
Caracterização de DeadlockDeadlockDeadlock ocorre se e somente se quatro ocorre se e somente se quatro condições se mantiverem simultaneamentecondições se mantiverem simultaneamente
• Mutual exclusion: somente um processo de cada vez pode usar um recurso
• Hold and wait: um processo mantendo pelo menos um recurso e está esperando para adquirir recursos adicionais mantidos por outros processos
![Page 9: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/9.jpg)
Caracterização de Deadlock• No preemption: um recurso só pode ser liberado
voluntariamente pelo processo que o mantém, após o processo completar a sua tarefa
• Circular wait: existe um conjunto {P0, P1, …, P0} de processos esperando, tal que P0 está esperando por um recurso que está atribuído P1, P1 está esperando por um recurso que está atribuído a
• P2, …, Pn–1 está esperando por um recurso que está atribuído Pn, e
• Pn está esperando por um recurso que está atribuído a P0
![Page 10: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/10.jpg)
Grafo de Alocação de Recursos
GrafoGrafo : um conjunto de vértices : um conjunto de vértices VV e um conjunto e um conjunto de arestas de arestas EE
• V está particionado em dois tipos:– P = {P1, P2, …, Pn}, o conjunto de todos os processos
no sistema– R = {R1, R2, …, Rm}, o conjunto de todos os tipos de
recursos no sistema
• aresta de pedido – aresta direcionada P1 Rj
• aresta de atribuição – aresta direcionada Rj Pi
![Page 11: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/11.jpg)
Grafo de Alocação de Recursos• Processo
• Tipo de recurso com 4 instâncias
• Pi solicita instância de Rj
• Pi está mantendo uma instância de Rj
•Pi
•Pi
•Rj
•Rj
![Page 12: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/12.jpg)
Exemplo de um Grafo de Alocação de Recursos
![Page 13: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/13.jpg)
Grafo de Alocação de Recursos com Deadlock
![Page 14: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/14.jpg)
Grafo de Alocação de Recursos com Ciclo sem Deadlock
![Page 15: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/15.jpg)
Fatos Básicos
• Grafo – não contém ciclos não há deadlock– contém um ciclo se houver
• somente uma instância por tipo de recurso, então ocorre deadlock
• diversas instâncias por tipo de recurso, então pode correr deadlock
![Page 16: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/16.jpg)
Métodos de Manipulação de Deadlock
• Garante que o sistema nunca entra num estado de deadlock
• Permite que o sistema entre num estado de deadlock e então recupera
• Ignora o problema e pretende que deadlocks nunca ocorram no sistema; usado por muitos sistemas operacionais, incluindo o UNIX
![Page 17: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/17.jpg)
Prevenção de Deadlock
• Mutual Exclusion – – não é necessária para recursos
compartilháveis– deve se manter para recursos que não podem
ser compartilhados
![Page 18: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/18.jpg)
Prevenção de Deadlock• Hold and Wait – deve guarantir que sempre
que um processo solicite um recurso, ele não mantém qualquer outro recurso– Exige que os processos solicitem e sejam
alocados todos os seus recursos antes de iniciar a execução, ou permite que o processo solicite recursos somente quando não tenha nenhum outro
– Baixa utilização de recursos; possibilita starvation
![Page 19: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/19.jpg)
Prevenção de Deadlock• No Preemption –
– Se um processo que está mantendo alguns recursos e solicita um outro recurso que não pode ser imediatamente alocado todos os recursos que ele mantém devem ser liberados
– Recursos com preempção são adicionados a lista de recursos do processo que está esperando
– Processo serão reiniciados somente quando ele puder recuperar seus recursos anteriores, além dos novos que está solicitando
![Page 20: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/20.jpg)
Prevenção de Deadlock
• Circular Wait – – impõe uma ordenação total de todos os
tipos de recursos – requer que cada processo solicite recursos
em uma ordem crescente de enumeração
![Page 21: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/21.jpg)
Evitar Deadlock• Requer que o sistema tenha alguma informação
adicional disponível a priori • Modelo mais simples e útil requer que cada
processo declare o número máximo de recursos de cada tipo que pode precisar
• Algoritmo de deadlock-avoidance examina dinamicamente o estado de alocação de recursos para garantir que nunca ocorra um condição de espera circular (circular-wait)
![Page 22: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/22.jpg)
Evitar Deadlock
• Estado de alocação de recursos é definido– pelo número de recursos disponíveis e
alocados – demanda máxima dos processos
![Page 23: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/23.jpg)
Estado Seguro• Quando um processo solicita um recurso disponível, o
sistema deve decidir se com a alocação imediata deste recurso, o sistema permanece em um estado seguro
• O sistema está em um estado seguro se exite uma seqüência <P0, P2, …, Pn> de todos os processos o sistema é tal que para cada Pi, o recurso que Pi ainda pode solicitar e pode ser satisfeito pelos recursos correntemente disponíveis + recursos mantido por todos os Pj, com j < i
![Page 24: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/24.jpg)
Estado Seguro• Isto é:
– Se Pi necessita de recursos que não estão disponíveis imediatamente, então Pi pode esperar até que todos Pj tenham teminado
– Quando Pj termina, Pi pode obter os recursos necessários, executar, retornar os recursos alocados e terminar
– Quando Pi termina, Pi +1 pode obter seus recursos necessários, e assim por diante.
![Page 25: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/25.jpg)
Fatos Básicos
• Se um sistema está num – estado seguro não ocorre deadlocks– estado inseguro pode ocorrer deadlock
• Evitar garante que um sistema nunca entrará em um estado inseguro
![Page 26: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/26.jpg)
Algoritmos Avoidance
• Única instânica de um tipo de recurso usar• um grafo de alocação de recurso
• Múltiplas instâncias de um tipo de recurso o banker’s algorithm
![Page 27: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/27.jpg)
Esquema do Grafo de Alocação de Recursos
• Aresta de demanda (claim edge) Pi Rj indica que processo Pj pode solicitar o recurso Rj; representado por uma linha tracejada
• Claim edge converte para aresta de pedido (request edge) quando um processo solicita um recurso
• Aresta de pedido converte para aresta de atribuição (assignment edge) quando o recurso é alocado ao processo
• Quando um recurso é liberado por um processo, a aresta de atribuição se converte para uma claim edge
• Recursos devem ser declarados no sistema a priori
![Page 28: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/28.jpg)
Grafo de Alocação de Recursos
![Page 29: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/29.jpg)
Grafo de Alocação de Recursos em Estado Inseguro
![Page 30: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/30.jpg)
Algoritmo do Grafo de Alocação de Recursos
• Suponha que o processo Pi solicite um recurso Rj
• O pedido pode ser garantido somente se a conversão da aresta de pedido (request edge) para aresta de atribuição (assignment edge) não resulta numa formação de um ciclo no grafo de alocação de recursos
![Page 31: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/31.jpg)
Banker´s Algorithm
• Mútiplas instâncias• Cada processo deve a priori declarar a sua
demanda de uso máxima• Quando um processo solicita um recurso ele pode
ter que esperar • Quando um processo consegue todos os seus
recursos, ele deve liberá-los numa quantidade de tempo finita
![Page 32: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/32.jpg)
Estrutura de Dados: Banker´s Algorithm
• Available: Vetor de tamanho m. Se Available [j] = k, existem k instâncias dos recursos do tipo Rj
disponíveis• Max: matriz n x m. Se Max [i,j] = k, então
processo Pi pode pedir até k instâncias do recurso do tipo Rj
Suponha
n = número de processos,
m = número de tipos de recursos
![Page 33: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/33.jpg)
Estrutura de Dados: Banker´s Algorithm
• Allocation: matriz n x m. Se Allocation[i,j] = k então Pi está alocando k instâncias de Rj
• Need: matriz n x m. Se Need[i,j] = k, então Pi pode necessitar de mais k instâncias de Rj para terminar sua tarefa
• Need [i,j] = Max[i,j] – Allocation [i,j]
![Page 34: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/34.jpg)
Algoritmo Seguro• 1. Deixe Work e Finish serem vetores de
tamanho m e n, respectivamente. Inicie:– Work = Available– Finish [i] = false for i = 0, 1, …, n- 1
• 2. Encontre um i tal que ambos: – (a) Finish [i] = false– (b) Needi Work– Se não existe tal i, vá para o passo 4
• 3. Work = Work + AllocationiFinish[i] = truevá para o passo 2
• 4. Se Finish [i] == true tara todo i, então o sistema está em um estado seguro
![Page 35: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/35.jpg)
Algoritmo de Pedido de Recurso por Processo Pi
• Request = vetor de pedido para o processo Pi. If Requesti [j]=k então processo Pi quer k instâncias do recurso de tipo Rj
• 1. Se Requesti Needi vá para o passo 2. Caso contrário, raise error condição de erro, uma vez que o processo excedeu sua demanda máxima
• 2. Se Requesti Available, vá para o passo 3. Caso contrário Pi deve esperar, uma vez que os recursos não estão disponíveis
![Page 36: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/36.jpg)
Algoritmo de Pedido de Recurso por Processo Pi
• 3. Pretende alocar recursos pedidos para Pi modificando o estado da seguinte forma:
– Available = Available – Request;– Allocationi = Allocationi +
Requesti;– Needi = Needi – Requesti;
Se safe os recursos são alocados a Pi Se unsafe Pi deve esperar e o estado de
alocação antigo é restaurado
![Page 37: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/37.jpg)
Exemplo do Algoritmo do Banqueiro• 5 Processos P0 até P4; • 3 tipos de recursos:• A (10), B (5), e C (7) instâncias• Snapshot do tempo T0:• Allocation Max Available• A B C A B C A B C• P0 0 1 0 7 5 3 3 3 2• P1 2 0 0 3 2 2 • P2 3 0 2 9 0 2• P3 2 1 1 2 2 2• P4 0 0 2 4 3 3
![Page 38: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/38.jpg)
Exemplo do Algoritmo do Banqueiro
• O conteúdo da matriz Need é definido como Max–Allocation
• Need• A B C
• P0 7 4 3 • P1 1 2 2 • P2 6 0 0 • P3 0 1 1• P4 4 3 1
• O sistema está em um estado seguro, porque a seqüência < P1, P3, P4, P2, P0> satisfais o critério de segurança
![Page 39: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/39.jpg)
Exemplo: Pi solicita (1,0,2)
• Verfique que Request Available (que é, (1,0,2) (3,3,2) true)
• Allocation Need Available• A B C A B C A B C • P0 0 1 0 7 4 3 2 3 0• P1 3 0 2 0 2 0 • P23 0 1 6 0 0 • P3 2 1 1 0 1 1• P4 0 0 2 4 3 1
![Page 40: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/40.jpg)
Exemplo: Pi solicita (1,0,2)
• Execução do algoritmo de segurança mostra que a seqüência < P1, P3, P4, P0, P2> satisfais a necessidade de segurança
• O pedido para (3,3,0) pelo P4 pode ser garantido?
• O pedido para (0,2,0) pelo P0 pode ser garantido?
![Page 41: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/41.jpg)
Detecção de Deadlock
• Permite ao sistema entrar num estado de deadlock
• Algoritmo de Deteção• Esquema de Recuperação
![Page 42: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/42.jpg)
Única Instância para Cada Tipo de Recurso
• Mantém grafo wait-for– Nós são processos– Pi Pj se Pi está esperando por Pj
• Periodicamente invoca um algoritmo que busca por um ciclo no grafo. Se existe um ciclo, existe deadlock
• Um algoritmo para detectar um ciclo em um grafo requer operações da ordem de n2, onde n é o número de vértices no grafo
![Page 43: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/43.jpg)
Grafo de Alocação de Recurso e Grafo Wait-For
Resource-Allocation Graph Corresponding Wait-For Graph
![Page 44: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/44.jpg)
Diversas Instâncias de um Tipo de Recurso• Available: Um vetor de tamanho m indica o
número de recursos disponíveis de cada tipo• Allocation: Uma matriz n x m define o
número de recursos de cada tipo correntemente alocado para cada processo
• Request: Uma matriz n x m indica o pedido corrente de cada processo. Se Request [ij] = k, então o processo Pi está pedindo mais k instâncias do tipo de recurso Rj
![Page 45: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/45.jpg)
Algoritmo de Detecção
• 1. Deixe Work e Finish serem vetores de tamanho m e n, respectivamente. Inicie:– (a) Work = Available– (b) For i = 1,2, …, n, if Allocationi 0, then
Finish[i] = false;otherwise, Finish[i] = true• 2. Encontre um índice i tal que ambos:
– (a) Finish[i] == false– (b) Requesti Work
– Se tal i não existe, vá para o passo 4
![Page 46: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/46.jpg)
Algoritmo de Detecção
• 3. Work = Work + AllocationiFinish[i] = truevá para o passo 2
• 4. Se Finish[i] == false, para algum i, 1 i n, então o sistema está num estado de deadlock. Além disso, se Finish[i] == false, então Pi está em deadlock
•
Algoritmo requer operações da ordem de O(m x n2) para detectar se o sistema está em estado de deadlocked
![Page 47: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/47.jpg)
Exemplo do Algoritmo de Detecção• 5 processos P0 até P4; 3 tipo de recursos
A (7), B (2), e C (6) instâncias• Snapshot no tempo T0:• Allocation Request Available• A B C A B C A B C• P00 1 0 0 0 0 0 0 0• P12 0 0 2 0 2• P2 3 0 3 0 0 0 • P3 2 1 1 1 0 0 • P4 0 0 2 0 0 2• Seqüência <P0, P2, P3, P1, P4> resultará em Finish[i]
= true para todo i
![Page 48: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/48.jpg)
Exemplo do Algoritmo de Detecção
• P2 pede uma instância adicional do tipo C• Request• A B C• P00 0 0• P12 0 1• P2 0 0 1• P3 1 0 0 • P4 0 0 2
![Page 49: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/49.jpg)
Exemplo do Algoritmo de Detecção
• Estado do sistema?– Pode demandar recurso mantido pelo
processo P0, mas recursos insuficientes se ajustam a outros processos; pedidos.
– Deadlock existe, consistindo dos processos P1, P2, P3, e P4
![Page 50: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/50.jpg)
Uso do Algoritmo de Detecção
• Quando e quantas vezes, invocar depende de:– Quantas vezes é provável que ocorra deadlock ?– Quantos processos necessitarão ter a sua
execução retornada para determinado ponto (rolled back)?• um por cada ciclo disjunto
• Se o algoritmo de detecção é invocado arbitrariamente, pode haver muitos ciclos no grafo de recursos e então não seriam capazes de dizer quais dos muitos processos em deadlock causaram o deadlock
![Page 51: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/51.jpg)
Recuperação de Deadlock: Processo de Terminação
• Abortar todos os processos em deadlock• Abortar um processo de cada vez até o ciclo de
deadlock ser eliminado• Em que ordem escolheríamos abortar?
– Prioridade do processo– Quanto tempo o processo computou, e quanto
tempo mais falta para terminar– Recursos usados pelo processo– Recursos necessários para completar o processo– Quantos processos necessitam ser terminados – O process é interativo ou batch?
![Page 52: Sistemas Operacionais. Deadlocks Problema Modelo do Sistema Caracterização Métodos para Manipulação Prevenção Evitar Detecção Recuperação.](https://reader034.fdocuments.net/reader034/viewer/2022051500/570638491a28abb8238f49b6/html5/thumbnails/52.jpg)
Recuperação de Deadlock: Preempção de Recursos
• Seleção de uma vítima – minimiza o custo• Rollback – returna para algum estado seguro,
reinicia processo naquele estado• Starvation – algum processo pode sempre ser
escolhido como vítima, incluir número de rollbacks no fator de custo