Deadlocks (impasses)

Documentos relacionados
Capítulo 3 Deadlocks - Impasses

Capítulo 7: Impasse (Deadlocks( Deadlocks)

Capítulo 3 Deadlocks - Impasses

SSC0640 Sistemas Operacionais I

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

Capítulo 3. Deadlocks. Recursos

SISTEMAS OPERACIONAIS

Sistemas Operacionais: Deadlocks

Escalonamento de Processos

Sistemas Distribuídos

Programação concorrente (processos e threads)

DEADLOCKS IMPASSES. Vinícius Pádua

Sistemas Operacionais

Programação Concorrente. 2º Semestre 2010

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

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

Inversão de prioridades

Fundamentos de Sistemas Operacionais

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

Escalonamento de Processos

Sistemas de Informação. Sistemas Operacionais

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

Sistemas Operacionais Bloqueios Perpétuos

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

Deadlocks. Sistemas Operacionais - Professor Machado

SO: SISTEMAS OPERACIONAIS Curso: Sistemas de Informação

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

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

Impasses. Pedro Cruz. EEL770 Sistemas Operacionais

ALGORITMOS DISTRIBUÍDOS Deadlock

SSC0640 Sistemas Operacionais I

DISCIPLINA: ELE213 Programação de Sistemas de Tempo Real. Créditos: 4. Caráter: Eletiva. Professor Regente: Prof. Walter Fetter Lages

Processos. Processo (1) Processo (2) Processo (3) Conceitos Básicos

Processos. Conceitos Básicos

Resumo: Sistemas Operacionais Abertos

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

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

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

Sistemas Operacionais Aula 7

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

Prof. Kleber R. Rovai

Sistemas Operativos. 2017/2018 1º Semestre

Capítulo 2 Processos e Threads

Sistemas de Entrada e Saída

Thread. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Sincronização e Comunicação entre Processos

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

Sistemas Operativos: Deadlocks

Fundamentos de Sistemas Operacionais

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

( ) ( ) Auto Avaliação F ( ) M ( ) D ( ) Seqüência: Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Exercícios - Dia 20/04/2011

Curso: Redes de Computadores

Algoritmos de escalonamento

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

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

Sistemas Operacionais

Avisos. Processamento de Transações Controle de Concorrência. Roteiro da aula. Tipos de bloqueio: Binários. Protocolos baseados em bloqueio

Sistemas Distribuídos. 7 Coordenação e Acordo. Coordenação e Acordo. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Retrospectiva da aula passada... Escalonamento. Na aula passada... Comunicação entre processos (-- O jantar dos filósofos --)

Licenciatura em Informática

Sistemas Operacionais

Roteiro. Introdução Sincronização de Relógio Físico Sincronização de Relógio Lógico Exclusão Mútua

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Transcrição:

Deadlocks (impasses)

Exemplos de recursos impressoras, drives, tabelas, memória, tempo de processador Sequência de eventos necessária para usar um recurso Solicitar recurso Usar recurso Liberar recurso Se o pedido for negado Pode bloquear e esperar semáforo ou espera ociosa Pode falhar, retornando código de erro

O problema do deadlock Um conjunto de processos bloqueados cada qual mantendo um recurso e aguardando por um recurso mantido por outro processo do conjunto. Semaphore x=1; Semaphore y=1; void t1( void) { down( &x); down( &y); } void t2( void) { down( &y); down( &x); }

Grafo de alocação Processo de recursos Classe de recurso com 4 instâncias Pi solicita instância de Ri P i R j B solicita S (1 instância de cada tipo de recurso) Pi está mantendo uma instância de Ri P i Rj A detém (mantém) R (1 instância de cada tipo de recurso)

Caracterização do deadlock O deadlock pode acontecer se 4 condições ocorrerem simultaneamente: 1) Exclusão mútua: apenas um processo pode utilizar o recurso de cada vez; 2) Posse e espera: um processo que detém pelo menos um recurso, está aguardando para adquirir recursos adicionais mantidos por outros processos; 3) Não-preempção: um recurso pode ser liberado apenas voluntariamente pelo processo que o detém; 4) Espera circular: existe um conjunto de processos {P0, P1,, Pn} aguardando, de tal forma que P0 está aguardando um recurso mantido por P1, P1 está aguardando um recurso mantido por P2,, Pn-1 está aguardando um recurso de Pn e Pn está aguardando um recurso mantido por P0.

Exemplo de um grafo de alocação de recursos Grafo com mais de uma instância de cada tipo de recurso

Grafo de alocação de recursos com um ciclo mas sem deadlock

Detecção de deadlocks com um recurso de cada tipo Quando se tem um grafo com um recurso de cada tipo, um ciclo indica a presença deadlock

Fatos Se o grafo não contiver ciclos => não há deadlock Se o grafo contiver ciclo(s): Se houver apenas uma instância de cada tipo de recurso => deadlock Se houver várias instâncias de cada tipo de recurso => possibilidade de deadlock

Detecção de deadlocks com vários recursos de cada tipo Algoritmo 1) Procura-se um processo desmarcado, Pi, para o qual a i-ésima linha de R (Ri) seja menor ou igual ao disponível (A): Ri <= A? 2) Se este processo for encontrado, adiciona-se a i-ésima linha de C à A, marca-se o processo como terminado e volta-se ao passo 1 A = A+Ci 3) Se não existir esse processo, o algoritmo termina Ao final do algoritmo, se existirem processos desmarcados, significa que irá ocorrer um deadlock

Detecção de deadlocks com vários recursos de cada tipo Exemplo E = [4 2 3 1] A = [2 1 0 0] C = 0 0 1 0 2 0 0 1 0 1 2 0 R = 2 0 0 1 1 0 1 0 2 1 0 0 E: vetor de recursos existentes A: vetor de recursos disponíveis (available) C: matriz de alocação atual (current) R: matriz de requisições Ri <= A? A = A+Ci R3<=A A = A+C3 A=[2 2 2 0] Ri <= A? A = A+Ci R2<=A A = A+C2 A=[4 2 2 1] Ri <= A? A = A+Ci R1<=A A = A+C1 A=[4 2 3 1] A=E!!!

Métodos para tratar deadlocks Ignora-se o problema e finge-se que nunca vai ocorrer (algoritmo do avestruz). usado por muitos sistemas operacionais de uso geral (Linux, Windows) Permite-se que o sistema entre em deadlock e depois faz-se a recuperação Assegura-se que o sistema nunca entrará num estado de deadlock

Eliminação (morte) de processos Algoritmos de recuperação de deadlocks grosseiro mas simples. Usual em sistemas de uso geral (Windows e Linux) mas improvavél em sistemas de tempo real. Rollback (reversão de estado) necessário gravar o estado do processo periodicamente para ser utilizado quando necessário (deadlock). e.g. pontos de recuperação do Windows Preempção retira-se um recurso de determinado processo, devolvendo-se aquele mais tarde (depende da natureza do processo e do recurso)

Algoritmos para evitar deadlocks Trajetória de recursos Análise de estados seguros e inseguros um estado é seguro se não está em deadlock e existe uma ordem de escalonamento na qual todos os processos possam ser executados até sua conclusão. O sistema pode garantir que todos os processos terminarão estado inseguro: pode até ser que todos os processos terminem mas esta garantia não pode ser dada.

Algoritmos para evitar deadlocks Trajetória de recursos A solicita Printer A libera Printer

Algoritmos para evitar deadlocks Análise de estados seguros e inseguros o primeiro estado é seguro porque há uma ordem de escalonamento (BCA) que permite que todos os processos terminem. Já o segundo estado é inseguro porque permite apenas que B termine: A e C necessitarão de 5 recursos e estarão disponíveis apenas 4. seguro inseguro

Prevenção de deadlocks Ataca-se a condição de posse-e-espera Os processos solicitam todos os seus recursos antes de começar. Processo nunca tem de esperar Problema: pode-se não saber quais são os recursos necessários já no início

Prevenção de deadlocks Ataca-se a condição de espera circular Recursos ordenados Pedido de recursos feitos por ordem numérica Grafo de recursos nunca terá ciclos

Bibliografia [1] Real-Time Systems and Programming Languages. Burns A., Wellings A. 2nd edition [2] Análise de Sistemas Operacionais de Tempo Real Para Applicações de Robótica e Automação. Aroca R. V. Dissertação de Mestrado. [3] Operating System Concepts. Silberschatz, Galvin, Gagne. 8 th edition [4] Sistemas Operacionais Modernos. Tanenbaum 2a edição