Sistemas Operacionais. DeadLock. Edeyson Andrade Gomes.

Documentos relacionados
Capítulo 7: Impasse (Deadlocks( Deadlocks)

SSC0640 Sistemas Operacionais I

Sistemas Distribuídos

Programação Concorrente. 2º Semestre 2010

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Capítulo 3 Deadlocks - Impasses

Capítulo 7: Deadlocks. Operating System Concepts 8th Edition

Aula 9. Deadlocks. Caracterização Grafo de dependência Métodos de tratamento Detecção Recuperação. Universidade Federal de Minas Gerais

Sistemas Operacionais

DEADLOCKS IMPASSES. Vinícius Pádua

Capítulo 3 Deadlocks - Impasses

Sistemas Operacionais: Deadlocks

Sistemas Operacionais Aula 09: Deadlocks / Impasses. Ezequiel R. Zorzal

SISTEMAS OPERACIONAIS

Fundamentos de Sistemas Operacionais

Sincronização e Comunicação entre Processos. Adão de Melo Neto

MAC422/5753 Sistemas Operacionais

Sistemas Distribuídos Exclusão Mútua. Edeyson Andrade Gomes

Deadlocks (impasses)

Deadlock. Um problema de concorrência. Parte dos slides: Sistemas Operacionais Modernos 2ª Edição, Pearson Education

Capítulo 3. Deadlocks. Recursos

SOP - TADS Impasses - Deadlock

ALGORITMOS DISTRIBUÍDOS Deadlock

Algoritmos Distribuídos (deadlock) ALGORITMOS DISTRIBUÍDOS Deadlock. Algoritmos Distribuídos (deadlock) Algoritmos Distribuídos (deadlock)

Sistemas Operacionais. Deadlock

Deadlocks. Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Sincronização e Comunicação entre Processos

Sistemas Operacionais Bloqueios Perpétuos

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas de Informação. Sistemas Operacionais

Impasses. Pedro Cruz. EEL770 Sistemas Operacionais

Sistemas de Gerência de Bancos de Dados

BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento

Algoritmos Distribuídos (exclusão mútua) ALGORITMOS DISTRIBUÍDOS Exclusão mútua. Algoritmos Distribuídos (exclusão mútua)

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Recursos. Exemplos de recursos:

Resumo: Sistemas Operacionais Abertos

Alocação de Recursos. Introdução. Sistemas de Tempo Real: Introdução. Modelo de Recursos. Modelo de Recursos. Modelo de Recursos

Alocação de Recursos. Introdução. Sistemas de Tempo Real: Introdução. Modelo de Recursos. Modelo de Recursos. Modelo de Recursos

Sumário. Deadlock. Definição. Recursos. M. Sc. Luiz Alberto

Deadlocks. Sistemas Operacionais - Professor Machado

Escalonamento de Processos

Programação de Sistemas. Impasse e carência

Impasses. Pedro Cruz. EEL770 Sistemas Operacionais

Seções Críticas em Sistemas de Tempo Real

Escalonamento. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 42

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS. SEMANAS 11 e 12

LabSO Gerência de Processos. Retrospectiva da aula passada... Na aula passada... Na aula passada...

Capítulo 6 Deadlocks. Não encontre defeitos, encontre soluções. Qualquer um sabe queixar-se. Henry Ford

Técnicas de Controle de Concorrência

Alocação de Recursos. Referências. Sistemas de Tempo Real: Introdução. Introdução. Modelo de Recursos. Modelo de Recursos

Sincronização e comunicação entre processos

Definição. ? Algoritmo de Escalonamento de CPU. ? Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU

Sistemas Operativos. Deadlocks FEUP. 23 de Outubro, 2009

Algoritmos de escalonamento

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sincronização de Processos (2)

Inversão de prioridades

Davidson Rodrigo Boccardo

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

Sincronização de Processos (2)

Contato. professorluisleite.wordpress.com

Sistemas Operacionais

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Sistemas Operacionais. Gerência de Processador

Sistemas Operacionais Gerenciamento de Processos

BD II (SI 587) Controle de Concorrência. Josenildo Silva.

Escalonamento da CPU

Escalonamento da CPU

Relógio Lógico Algoritmo de Lamport. Relógio Lógico Algoritmo de Lamport. Relógio Físico Algoritmo Centralizado. Relógio Físico Algoritmo Centralizado

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios

Escalonamento. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 28

Fundamentos de Sistemas Operacionais

6 ESCALONAMENTO DE CPU

Faculdade de Informática - PUCRS. Sistemas Distribuídos 2. Faculdade de Informática - PUCRS. Sistemas Distribuídos 4. Faculdade de Informática - PUCRS

Sistemas Operacionais I Memória Virtual

6. Mostre os principais modelos de organização interna de um sistema operacional.

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 3. Escalonamento

Gerência do Processador. Adão de Melo Neto

Sincronização e Comunicação

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I SEM/12 PROVA I. Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos

Tipos de Soluções (cont.)

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos

Sistemas Operativos: Deadlocks

Fundamentos de Sistemas Operacionais

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 09. Escalonadores. Conceito, escalonamento, filas de escalonamento e tipos de escalonadores.

Recursos. Um recurso é ou um dispositivo físico (dedicado) do hardware, ou Solicitar o recurso: esperar pelo recurso, até obtê-lo.

Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br

SSC0640 Sistemas Operacionais I

NÚCLEO DE TECNOLOGIA DEPARTAMENTO ACADÊMCIO DE CIÊNCIA DA COMPUTAÇÃO. I - Objetivo Geral: Introduzir os conceitos gerais de sistemas operacionais

Sistemas Operacionais

1B Conceitos Básicos: Indique Verdade/Falso

Roteiro. Noções de Controle de Concorrência. BCC321 - Banco de Dados I. Ementa. Finalidade do Controle de Concorrência.

Sistemas Operacionais. Prof. André Y. Kusumoto

Davidson Rodrigo Boccardo

Sistemas Distribuídos. Processos. Edeyson Andrade Gomes

Sistemas Operacionais Aula 6

Sistemas Operacionais

Transcrição:

Sistemas Operacionais DeadLock Edeyson Andrade Gomes www.edeyson.com.br

Roteiro da Aula DeadLock Metas Algoritmos 2

DeadLock Um estado de deadlock ocorre quando dois ou mais processos estão esperando por um evento que só pode ser gerado por algum dos processos em espera; Processo espera por um evento que nunca ocorrerá; Cada processo do conjunto em deadlock está esperando por um recurso que foi entregue a outro processo do mesmo conjunto. Espera circular por recursos. 3

DeadLock Recurso pode ser removível e não removível. Geralmente deadlock surge quando há recursos não removíveis envolvidos. 4

DeadLock Condições necessárias para ocorrência do DeadLock: 1. Exclusão Mútua; 2. Posse e Espera; 3. Não Preempção; 4. Espera Circular. As 4 condições necessitam ocorrer em conjunto Se ao menos uma não ocorrer, não há DeadLock 5

DeadLock Condições necessárias para ocorrência do DeadLock: 1. Exclusão Mútua; 1. Apenas um processo por vez pode alocar e manipular um recurso 1. Recurso de uso exclusivo 1. Impressora, CD/DVD para gravação 2. Posse e Espera; 3. Não-Preempção; 4. Espera Circular. 6

DeadLock Condições necessárias para ocorrência do DeadLock: 1. Exclusão Mútua; 2. Posse e Espera; 1. Um processo, de posse de um recurso, pode solicitar novos recursos 3. Não-Preempção; 4. Espera Circular. 7

DeadLock Condições necessárias para ocorrência do DeadLock: 1. Exclusão Mútua; 2. Posse e Espera; 3. Não-Preempção; 1. Um recurso não pode ser removido explicitamente do processo 1. Ex.: Impressora, CD (Gravação) 4. Espera Circular. 8

DeadLock Condições necessárias para ocorrência do DeadLock: 1. Exclusão Mútua; 2. Posse e Espera; 3. Não-Preempção; 4. Espera Circular. 1. Ocorre CICLO no GRAFO de alocação 9

DeadLock Como usar recursos: 1. Solicitar Recurso ao S.O. 2. Se o Recurso estiver LIVRE ALOCAR RECURSO 3. Senão: BLOQUEAR PROCESSO 4. Após Uso: 1. Processo LIBERA Recurso 10

DeadLock Como usar recursos: 1. Solicitar Recurso ao S.O. DOWN(mutex) 2. Se o Recurso estiver LIVRE se mutex = 1 ALOCAR RECURSO 3. Senão: mutex = 0 BLOQUEAR PROCESSO 4. Após Uso: 1. Processo LIBERA Recurso UP(mutex) 11

Grafo de Alocação de Recursos Deadlock Imprevisível Depende da ordem dos Eventos R 1 Quer Tem Eventos: P1 requisitou R2 P2 requisitou R1 P1 requisitou R1 P2 requisitou R2 P3 requisitou R2 P 1 P 2 R 2 P 3 12

Grafo de Alocação de Recursos Alocação de Recursos Implementação com Semáforos? Com Monitores? R 1 Quer Tem Eventos: P1 requisitou R2 P2 requisitou R1 P1 requisitou R1 P2 requisitou R2 P3 requisitou R2 P 1 P 2 R 2 P 3 13

Grafo de Alocação de Recursos Deadlock Imprevisível Depende da ordem dos Eventos R 1 Quer Tem Eventos: P1 requisitou R2 P1 requisitou R1 P2 requisitou R1 P3 requisitou R2 P 1 P 2 R 2 P 3 14

Grafo de Alocação de Recursos Grafo com DeadLock Ciclo Existente P 2 R 2 R 3 Quer Tem P 1 P 3 R 1 15

Exemplo Comparativo Exemplo da ponte (recurso): Só permite tráfego em um sentido por vez. 16

Soluções Ignorar o problema ( Algoritmo do Avestruz ); Linux, Unix, Windows Detectar e Recuperar; Evitar dinamicamente sua ocorrência, com alocação cuidadosa de recursos; Impedir o Deadlock através da negação de pelo menos uma das 4 condições necessárias para sua ocorrência. 17

Detectar e Recuperar Dois Modelos: Um recurso de cada tipo Vários recursos de cada tipo 18

Deadlock Detecção com um recurso de cada tipo

Detectar e Recuperar Detecção com um recurso de cada tipo Monta Grafo Se houver ciclo DETECTA DEADLOCK Analisar grau de multiprogramação Taxa de bloqueio e tempo de espera Problema: Quando montar o grafo? 20

Detectar e Recuperar Detecção com um recurso de cada tipo Problema: Quando montar o grafo? A cada requisição de recurso (I) Em intervalos fixos (II) Qual o custo de cada um? Overhead A solução (I) tem maior overhead. Detecta imediatamente o Deadlock E a solução (II)? 21

Detectar e Recuperar Recuperação com um recurso de cada tipo Problema: O Deadlock ocorreu. Como recuperar? Eventos: P1 req R2 P2 req R1 P3 req R3 P4 req R4 P1 req R1 P2 req R2 P3 req R2 P4 Req R3 P 1 P 2 R 2 R 1 P 3 P 4 R 4 R 3 22

Detectar e Recuperar Recuperação com um recurso de cada tipo Soluções: Extermínio Mata um processo no Ciclo Volta ao Passado Rollback em processo do Ciclo até liberar recurso R 1 P 1 P 2 P 3 P 4 R 4 R 2 R 3 23

Detectar e Recuperar Recuperação com Extermínio Critérios de escolha da Vítima no Ciclo: Aleatório Prioridade Tempo de CPU Número de Recursos Alocados Detecção x Recuperação 24

Detectar e Recuperar Recuperação com Volta ao Passado P1 --- R2 ------ ------ R1 ------ ------- ---- P2 --- ------ R1 ------ ------ R2 ------- ---- P2 é alvo Desfazer P2 até antes de alocar R1 25

Detectar e Recuperar Recuperação com Volta ao Passado P2 é alvo Desfazer P2 até antes de alocar R1 P1 --- R2 ------ ------ R1 ------ ------- ---- P2 --- ------ Custo. Quem implementa? SGBD 26

Deadlock Detecção com Vários Recursos de Cada Tipo

Detectar e Recuperar Detecção e Recuperação com Vários Recursos de Cada Tipo Suponha que eu tenho 2 R1 e 3 R2 Como montar o Grafo? R 1 R 1 R 1 P 1 P 2 R 2 R 2 R 2 28

Detectar e Recuperar Alocação Suponha que eu tenho 2 R1 e 3 R2 Evento Recursos Disponíveis P1 req R1 [R1 = 1 e R2 = 3] R 1 P2 req R1 [R1 = 0 e R2 = 3] P1 req R2 [R1 = 0 e R2 = 2] P1 req R2 [R1 = 0 e R2 = 1] P2 req R2 [R1 = 0 e R2 = 0] P1 req R1 [R1 = 0 e R2 = 0] P1 BL P2 req R2 [R1 = 0 e R2 = 0] P2 BL R 1 R 1 P 1 P 2 R 2 R 2 R 2 29

Detectar e Recuperar Alocação Suponha que eu tenho 2 R1 e 3 R2 Evento Recursos Disponíveis P1 req R1 [R1 = 1 e R2 = 3] R R 1 P2 req R1 [R1 = 0 e R2 = 3] P1 req R2 [R1 = 0 e R2 = 2] P3 req R2 [R1 = 0 e R2 = 1] P2 req R2 [R1 = 0 e R2 = 0] P1 req R1 [R1 = 0 e R2 = 0] P1 BL P2 req R2 [R1 = 0 e R2 = 0] P2 BL Não há DeadLock R 1 P 1 P 2 R 2 P 3 R 2 R 2 30

Detectar e Recuperar Solução de Detecção Uso de Vetores e Matrizes Vetor de Recursos Existentes (VRE) A posição i do vetor representa a quantidade de recursos i [p q r] p recursos to tipo 1 q recursos do tipo 2 r recursos do tipo 3 VRE = [3 2 5] R1 = Fitas R2 = CD R3 = Impressoras 31

Detectar e Recuperar Solução de Detecção Uso de Vetores e Matrizes Vetor de Recursos Disponíveis (VRD) A posição i do vetor representa quantos recursos i não estão Alocados [m n o] m recursos to tipo 1 disponíveis n recursos do tipo 2 disponíveis o recursos do tipo 3 disponíveis VRD = [1 2 3] R1 = Fita R2 = CD R3 = Impressoras 32

Detectar e Recuperar Solução de Detecção Uso de Vetores e Matrizes Matriz de Recursos Alocados (MRA) Linha representa um processo Coluna representa um recurso R1 R2 R3 1 0 2 P1 tem 1 R1, 0 R2 e 2 R3 0 1 1 MRA P2 tem 0 R1, 1 R2 e 1 R3 0 0 1 P3 tem 0 R1, 0 R2 e 1 R3 33

Detectar e Recuperar Solução de Detecção Uso de Vetores e Matrizes Matriz de Recursos Requisitados (MRR) Linha representa um processo Coluna representa um recurso R1 R2 R3 1 0 2 P1 requer 1 R1, 0 R2 e 2 R3 0 1 1 MRR P2 requer 0 R1, 1 R2 e 1 R3 0 0 1 P3 requer 0 R1, 0 R2 e 1 R3 34

Detecção VRE [2 3 1] VRD [2 3 1] MRA Eventos: MRR 35

Detecção VRE [2 3 1] VRD [2 3 1] MRA MRR 1 1 0 Eventos: P1 requisita 1 R1 e 1 R2 SO: Existem recursos livres? Analisa VRD. 36

Detecção VRE [2 3 1] VRD [1 2 1] MRA MRR 1 1 0 Eventos: P1 requisita 1 R1 e 1 R2 SO: Existem recursos livres? Analisa VRD. Aloca Recursos 37

Detecção VRE [2 3 1] VRD [1 2 1] MRA MRR 1 1 0 1 0 1 Eventos: P2 requisita 1 R1 e 1 R3 SO: Existem recursos livres? Analisa VRD. 38

Detecção VRE [2 3 1] VRD [0 2 0] MRA MRR 1 1 0 1 0 1 Eventos: P2 requisita 1 R1 e 1 R3 SO: Existem recursos livres? Analisa VRD. Aloca Recursos 39

Detecção VRE [2 3 1] VRD [0 2 0] MRA MRR 1 1 0 1 0 1 0 2 1 Eventos: P3 requisita 2 R2 e 1 R3 SO: Existem recursos livres? Analisa VRD. 40

Detecção VRE [2 3 1] VRD [] MRA MRR 1 1 0 1 0 1 0 2 0 0 0 1 Eventos: P3 requisita 2 R2 e 1 R3 SO: Existem recursos livres? Analisa VRD. Aloca Recursos P3 Bl aguardando 1 R3 Não existe Deadlock 41

Detecção VRE [2 3 1] VRD [] MRA MRR 1 1 0 1 0 1 0 2 0 1 0 0 0 0 1 Eventos: P1 requisita 1 R1 SO: Existem recursos livres? Analisa VRD. P1 Bl aguardando 1 R1 Não existe Deadlock 42

Detecção VRE [2 3 1] VRD [] MRA MRR 1 1 0 1 0 1 0 2 0 1 0 0 0 1 0 0 0 1 Eventos: P2 requisita 1 R2 SO: Existem recursos livres? Analisa VRD. P2 Bl aguardando 1 R2 Existe Deadlock 43

Detectar e Recuperar Alocação Suponha que eu tenho 2 R1 e 3 R2 Evento Recursos Disponíveis P1 req R1 [R1 = 1 e R2 = 3] P2 req R1 [R1 = 0 e R2 = 3] P1 req R2 [R1 = 0 e R2 = 2] P1 req R2 [R1 = 0 e R2 = 1] P2 req R2 [R1 = 0 e R2 = 0] P1 req R1 P2 req R2 [R1 = 0 e R2 = 0] P1 BL [R1 = 0 e R2 = 0] P2 BL 44

Detectar e Recuperar Alocação Suponha que eu tenho 2 R1 e 3 R2 VRE = [2 3] VRD = [2 3] Evento Recursos Disponíveis VRE = [2 3] VRD = [0 0] MRA 1 2 MRR 1 0 1 1 0 1 P1 req R1 [R1 = 1 e R2 = 3] P2 req R1 [R1 = 0 e R2 = 3] P1 req R2 [R1 = 0 e R2 = 2] P1 req R2 [R1 = 0 e R2 = 1] P2 req R2 [R1 = 0 e R2 = 0] P1 req R1 [R1 = 0 e R2 = 0] P1 BL P2 req R2 [R1 = 0 e R2 = 0] P2 BL 45

Detectar e Recuperar Qual o custo desse processo de Detecção? Montar Matrizes e Vetores Análise Overhead 46

Deadlock Como Evitar

Como Evitar Deadlock Algoritmo do Banqueiro Empréstimo X Reserva Qual o $ que o banco empresta? Estado Seguro Probabilidade de Deadlock = 0% 48

Evitar DeadLock Uso de Vetores e Matrizes Vetor de Recursos Existentes (VRE) A posição i do vetor representa a quantidade de recursos i [n1 n2 n3] n1 recursos to tipo 1 n2 recursos do tipo 2 n3 recursos do tipo 3 VRE = [3 2 5] R1 = 3 Fitas R2 = 2 CD R3 = 5 Impressoras 49

Evitar DeadLock Uso de Vetores e Matrizes Vetor de Recursos Disponíveis (VRD) A posição i do vetor representa quantos recursos i não estão Alocados [n1 n2 n3] n1 recursos do tipo 1 disponíveis n2 recursos do tipo 2 disponíveis n3 recursos do tipo 3 disponíveis VRD = [1 2 3] R1 = 1 Fita R2 = 2 CD R3 = 3 Impressoras 50

Evitar DeadLock Evitar Uso de Vetores e Matrizes Matriz de Recursos Alocados (MRA) Linha representa um processo Coluna representa um recurso R1 R2 R3 1 0 2 P1 tem 1 R1, 0 R2 e 2 R3 0 1 1 MRA P2 tem 0 R1, 1 R2 e 1 R3 0 0 1 P3 tem 0 R1, 0 R2 e 1 R3 51

Evitar DeadLock Evitar Uso de Vetores e Matrizes Matriz de Recursos Requisitados (MRR) Linha representa um processo Coluna representa um recurso R1 R2 R3 1 0 2 P1 requer 1 R1, 0 R2 e 2 R3 0 1 1 MRR P2 requer 0 R1, 1 R2 e 1 R3 0 0 1 P3 requer 0 R1, 0 R2 e 1 R3 52

Evitar DeadLock Evitar Uso de Vetores e Matrizes Matriz de Recursos Possivelmente Necessários (MRPN) Informados no início da execução do processo R1 R2 R3 2 1 2 P1 pode requerer 2 R1, 1 R2 e 2 R3 1 2 3 MRPN P2 pode requerer 1 R1, 2 R2 e 3 R3 2 2 4 P3 pode requerer 2 R1, 2 R2 e 4 R3 53

Evitar DeadLock Restrições A alocação de recursos depende de estado seguro O processo necessita informar ao sistema quantos recursos de cada tipo ele pode requerer Alocação Criteriosa de Recursos 54

Evitar DeadLock VRE [5 3 2] VRD [5 3 2] Eventos: MRA MRR MRPN 2 2 1 3 2 2 1 2 2 55

Evitar DeadLock VRE [5 3 2] VRD [5 3 2] Eventos: P1 solicita 1R1, 1R2, 1R3 MRA MRR 1 1 1 MRPN 2 2 1 3 2 2 1 2 2 56

Evitar DeadLock VRE [5 3 2] VRD [4 2 1] Eventos: P1 solicita 1R1, 1R2, 1R3 MRA 1 1 1 MRR MRPN 2 2 1 3 2 2 1 2 2 57

Evitar DeadLock VRE [5 3 2] VRD [4 2 1] 1 1 1 MRA Eventos: P1 solicita 1R1, 1R2, 1R3 P2 solicita 1R1, 1R3 MRR 1 0 1 MRPN 2 2 1 3 2 2 1 2 2 58

Evitar DeadLock VRE [5 3 2] VRD [3 2 0] 1 1 1 MRA 1 0 1 Eventos: P1 solicita 1R1, 1R2, 1R3 P2 solicita 1R1, 1R3 MRR MRPN 2 2 1 3 2 2 1 2 2 59

Evitar DeadLock VRE [5 3 2] VRD [3 2 0] 1 1 1 MRA 1 0 1 Eventos: P1 solicita 1R1, 1R2, 1R3 P2 solicita 1R1, 1R3 P3 solicita 1R1, 2R2 MRR 1 2 0 MRPN 2 2 1 3 2 2 1 2 2 Alocar R2 a P3 gera probabilidade de deadlock > 0 60

Deadlock Impedir

Impedir Deadlock Condições necessárias para existir Deadlock: Exclusão Mútua Posse e Espera Não Preempção Espera Circular Deadlock só pode existir se essas 4 condições aparecerem JUNTAS. E se eliminarmos 1 delas? Deadlock torna-se IMPOSSÍVEL de ocorrer. 62

Impedir Deadlock Eliminando condições necessárias para existir Deadlock: Exclusão Mútua Impressora Fila de Impressão - Finita Problema: e se a fila encher? Retardar o problema 63

Impedir Deadlock Eliminando condições necessárias para existir Deadlock: Posse e Espera Requisitar todos os recursos possivelmente necessários num só passo e antecipadamente Atomicidade: ou aloca todos ou nenhum Problemas: Pode alocar recursos que não vai usar Pode demorar muito para usar um recursos alocado cedo demais S.O. precisa manter quantidade alta de recursos do mesmo tipo para manter concorrência 64

Impedir Deadlock Exemplo VRE = [10 8 6] Se P1 executar primeiro, P2 pode executar? Não, pois não pode alocar 6 R1 Se P1 executar primeiro, P3 pode executar? Sim Se P2 executar primeiro, outro pode executar? Não. R1 R2 R3 5 3 3 6 5 2 MRR 4 4 3 65

Impedir Deadlock Eliminando condições necessárias para existir Deadlock: Eliminar a Espera Circular Priorizar Recursos, numerando-os. Requisitar recursos por ordem de prioridade 66

Impedir Deadlock Exemplo VRE = [10 8 6] P1 requisita 4 R1 P1 requisita 1 R2 P1 só pode requisitar novos R2 e R3 P2 requisita 3R1 e 4 R2 P2 requisita 1 R3 P2 só pode requisitar novos R3 Elimina Espera Circular 67

Deadlock Prevenção Ordenamento hierárquico de processos Wait-Die (WD): Não-preemptivo QuandoPrequer um recurso alocado porq, P aguarda apenas se for mais velho que Q. Em outro caso, P morre. 68

Deadlock Prevenção Wound-Wait (WW): Preemptivo QuandoPrequer um recurso alocado porq, P aguarda apenas se for mais novo que Q. Em outro caso, Q morre, liberando os recursos. 69