Deadlocks Professora: Lúcia Drummond. Deadlocks Recursos: hardware ou informação Preemptivo Não preemptivo Uso do Recurso: 1. Pedido (Request ou Open)

Slides:



Advertisements
Apresentações semelhantes
Algoritmos de Caminho Mínimo em Grafos
Advertisements

Sistemas Operacionais
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Sistemas Operacionais Sincronismo e Comunicação entre processos
Sistemas Operacionais Gerência de Processador
INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Sistemas Operacionais Gerência de Processador WebDesign Redes de Computadores.
Exercícios PAA- Grafos
Solved Exercises 1. Finding the Peak. Let A= a1,…,an be a sequence of n numbers with the following property: there is p in {1,…,n} for which (i) the.
Exercícios PAA- Grafos
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Máquina de.
Sincronismo e Comunicação entre Processos
Sincronismo e Comunicação entre Processos
Bloqueios partilhados
Chip-Select e Controle de Interrupção
Deadlocks - Impasses 3.1. Recurso 3.2. Introdução aos deadlocks
Arquitetura de Sistemas Operacionais
Capítulo 7: Deadlocks.
Algoritmos Distribuídos Professora: Lúcia Drummond
Problemas com Entrada e Saída
Recursos Recurso: objeto físico ou abstrato necessário para que uma tarefa seja executada exemplos: tempo de CPU, memória principal, dispositivos de E/S,
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
SSC SISTEMAS OPERACIONAIS I Aula 16 – Funcionamento CD/DVD
Deadlock Marcos José Santana Regina Helena Carlucci Santana
Deadlock SISTEMAS OPERACIONAIS
Fabio Notare Martins Pontifícia Universidade Católica do Rio Grande do Sul Programa de Pós-Graduação em Ciências da Computação.
Capítulo 3 Deadlocks - Impasses 3.1. Recurso
Capítulo 3 - Russell e Norvig
DeadLock Sistemas Operacionais I
Claudio de Oliveira – Thread 09/03/10 20:13 Claudio de Oliveira –
INF 1771 – Inteligência Artificial
Sistemas Operacionais Adriana Vettorazzo
Exclusão Mútua A solução mais simples para evitar os problemas de compartilhamento é impedir que dois ou mais processos estiver acessando determinado recurso,
Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU
Meta - heurísticas Prof. Aurora
Algoritmos em Grafos.
Monitores.
Unidade 3 Controle de Concorrência
Informática Teórica Engenharia da Computação
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Aula prática 6 Vetores e Matrizes
Exercícios PAA- Grafos
Sistemas Operacionais
Operações com grafos União Exemplo
Alocação Dinâmica de Memória
Capítulo 7: Deadlocks.
Lógica de Programação de Jogos
Busca com informação e exploração
Prof. Alexandre Monteiro Recife
Inteligência Artificial
Algoritmos e Estruturas de Dados I – Ponteiros
Capítulo 7: Deadlocks.
Processos.
Ronaldo Celso Messias Correia –
Bruna Rafaella da Costa Moura Silvana dos Santos Lima
Assunto: Transações concorrentes, Disciplina: Banco de dados II, profa. Cristina Paludo Max W. Ourique Ranieri R. Tremea
Inteligência Artificial
Fases do Processo Detecção de Bordas Vetorização Reconhe- cimento.
Resolução de Problemas de Busca
Sistemas Operacionais
PostGres - Transacções
Celso C. Ribeiro Caroline T. Rocha
Gerenciamento de Processos
Bruno Affonso Diego Chiquito Ruan Berté.   O código de Escalonamento no Windows é implementado no Kernel.  A rotina que desempenha as tarefas do Escalonador.
Deadlocks Impasses Vinícius Pádua.
Algoritmo de Transportes Objecto de Aprendizagem Manuel Pina MarquesDEIG
Deadlocks.
Algoritmo e Estrutura de Dados I Aulas 15 – Linguagem C Alocação Dinâmica de Memória Márcia Marra
Sistemas Operacionais
INE5408 Estruturas de Dados Listas Encadeadas Simples.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner
Transcrição da apresentação:

Deadlocks Professora: Lúcia Drummond

Deadlocks Recursos: hardware ou informação Preemptivo Não preemptivo Uso do Recurso: 1. Pedido (Request ou Open) 2. Uso 3. Liberação Um conjunto de processos está em deadlock se cada processo no conjunto está esperando por um evento que somente um outro processo do conjunto pode causar.

Deadlocks Condições 1. Exclusão Mútua 2. Obtenção e Espera 3. Não preempção 4. Espera Circular

Deadlocks Modelo Grafos: Processos são círculos e recursos são quadrados. O recurso R está alocado ao processo A. R A

Deadlocks Modelo O processo B está bloqueado esperando S. Exemplo: S B Processo AProcesso BProcesso C Pede RPede SPede T Pede SPede T Pede R Libera RLibera SLibera T Libera SLibera TLibera R

Deadlocks Modelo Exemplo: 1. A pede R 2. B pede S 3. C pede T 4. A pede S 5. B pede T 6. C pede R 7. deadlock R A S B T C

Deadlocks Modelo Exemplo: 1. A pede R 2. C pede T 3. A pede S 4. C pede R 5. A libera R 6. A libera S R A S B T C

Deadlocks Estratégias 1. Ignora o problema 2. Detecção e Recuperação 3. Evitar dinamicamente 4. Prevenção Algoritmo do Avestruz Unix: Número de entradas na tabela de processos é finita. Exemplo: 100 entradas e 10 processos criam 12 processos. Depois que cada processo criou 9 outros, eles ficam em loop infinito.

Deadlocks Detecção e Recuperação de Deadlock Com um tipo de recurso Detecção de ciclos em grafos: 1-Para cada nó do grafo execute os seguintes passos: 2-Inicialize L como lista vazia e designe todos os arcos como não marcados. 3- Acrescente o nó atual ao final de L e verifique se o nó parece em L duas vezes. Se sim, o grafo contém um ciclo e o algoritmo termina. 4- Do dado nó, veja se existem quaisquer arcos de saída não marcados. Se sim, vá para o passo 5; senão vá para o passo 6.

Deadlocks Detecção e Recuperação de Deadlock Com um tipo de recurso Detecção de ciclos em grafos: 5- Pegue qualquer arco de saída não marcado aleatoriamente e marque- o. Então siga para o próximo nó corrente e vá para o passo 3 6- Dead end. Volte ao nó anterior, torne-o o atual e volte ao passo 4. Se este nó é o inicial, o grafo não contém ciclos e o algoritmo termina.

Deadlocks Detecção e Recuperação de Deadlock Com um tipo de recurso R A C S F W D U G V T B E

Deadlocks Detecção e Recuperação de Deadlock Com múltiplos recursos Classes de recursos = m Vetor de recursos = E (m elementos) Vetor de recursos disponíveis = A Número de processos = n Matriz de alocação atual = C Matriz de pedidos = R

Deadlocks Detecção e Recuperação de Deadlock Com múltiplos recursos Exemplo: C i,j = número de instâncias do recurso j que são utilizadas por P i R i,j = número de instâncias do recurso j que P i deseja.

Deadlocks Detecção e Recuperação de Deadlock Recuperação de deadlock Preempção: tomar o recurso de um processo temporariamente e dá- lo a outro processo. Exemplo: Mainframe: Intervenção manual. Rollback e checkpointing (memory image estados dos processos): quando o deadlock é detectado, um processo pode retornar a um determinado ponto. Matar processos.

Deadlocks Detecção e Recuperação de Deadlock Algoritmo de detecção 1. Procure um processo não marcado P i para o qual a i-ésima linha de R é menor que A. 1. Se tal processo é achado, acrescente a i-ésima linha de C para A, marque o processo C e volte para o passo Se tal processo não existe, o algoritmo termina. Quando o algoritmo termina, todos os processos não marcados estão em deadlock.

Deadlocks Detecção e Recuperação de Deadlock Algoritmo de detecção Exemplo:

Deadlocks Evitar Deadlocks O sistema é capaz de decidir se obter um recurso é seguro ou não e somente faz a alocação quando for seguro. Estados seguros e não seguros Seguro: O sistema não está em deadlock e existe uma forma de satisfazer todos os pedidos pendentes.

Deadlocks Evitar Deadlocks Algoritmo do banqueiro O algoritmo do banqueiro considera cada pedido quando ocorre e verifica se atendê-lo leva a um estado seguro. Se sim, o pedido é atendido, senão o pedido é adiado. Para verificar se um estado é seguro: O banqueiro examina se ele tem recursos suficientes para satisfazer algum cliente. Se sim, ele assume que estes recursos serão devolvidos, e testa o limite de algum outro cliente. Se todos os empréstimos puderem ser pagos, o estado é seguro e o pedido inicial pode ser atendido.

Deadlocks Evitar Deadlocks Algoritmo do banqueiro para múltiplos recursos 1. Procure uma linha em R, cujas necessidades de recurso sejam menores ou iguais a A. Se tal linha não existir, o sistema eventualmente estará em deadlock já que nenhum processo poderá executar até terminar. 1. Assuma que o processo da linha escolhida peça todos os recursos que precisa e termine. Marque este processo como terminado e some todos os seus recursos ao vetor A. 1. Repita os passos 1 e 2 até que ou todos os processos estejam marcados como terminados, neste caso o estado inicial é seguro ou até que um deadlock ocorra.

Deadlocks Prevenção de Deadlock 1. Exclusão Mútua Printer – Spool Espaço de disco de spool – deadlock 2. Obtenção e espera Os processos obtêm os recursos antes de começarem a execução. 3. Não preempção Problema!!! 4. Espera Circular Numerar os recursos. Processos pedirem em ordem.

Deadlocks Prevenção de Deadlock Outras considerações 1. Locking de duas fases Obter todos os recursos antes de terminar. 2. Non-resources Semáforos 3. Starvation