DEADLOCKS IMPASSES. Vinícius Pádua

Documentos relacionados
Capítulo 3 Deadlocks - Impasses

Capítulo 3 Deadlocks - Impasses

SSC0640 Sistemas Operacionais I

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Programação Concorrente. 2º Semestre 2010

SOP - TADS Impasses - Deadlock

SISTEMAS OPERACIONAIS

Capítulo 7: Impasse (Deadlocks( Deadlocks)

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

Sistemas Operacionais: Deadlocks

Sistemas Distribuídos

MAC422/5753 Sistemas Operacionais

Deadlocks. Sistemas Operacionais - Professor Machado

Sistemas Operacionais. DeadLock. Edeyson Andrade Gomes.

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

Sistemas Operacionais

Impasses. Pedro Cruz. EEL770 Sistemas Operacionais

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

Sistemas Operacionais. Deadlock

Deadlocks (impasses)

Impasses. Pedro Cruz. EEL770 Sistemas Operacionais

Capítulo 3. Deadlocks. Recursos

Recursos. Exemplos de recursos:

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

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. Adão de Melo Neto

Fundamentos de Sistemas Operacionais

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

Sistemas Operacionais Bloqueios Perpétuos

ALGORITMOS DISTRIBUÍDOS Deadlock

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

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operativos. Deadlocks FEUP. 23 de Outubro, 2009

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

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

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

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

Resumo: Sistemas Operacionais Abertos

Inversão de prioridades

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

Escalonamento de Processos

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

Sincronização e Comunicação entre Processos

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

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

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

Sistemas Operacionais II. Linux 2: Threads, Escalonamento, Gerenciamento de Memória e Sistemas de Arquivos

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

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

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

Laboratório de Informática. Leopoldo Teixeira

Técnicas de Controle de Concorrência

Contato. professorluisleite.wordpress.com

6 ESCALONAMENTO DE CPU

Exclusão Mútua (mutex)

Programação Concorrente Locks

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

Sincronização e comunicação entre entidades de processamento. Mutex Volnys Bernal 1. Tópicos. Exclusão Mútua (mutex) Exclusão Mútua (Mutex)

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

Estrutura de Dados. Aula 07 Alocação Dinâmica

Desenvolvimento de Aplicações Distribuídas

Sistemas Distribuídos

Algoritmos de escalonamento

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Unidade II FUNDAMENTOS DE SISTEMAS OPERACIONAIS. Prof. Victor Halla

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

Sistemas Operacionais. Prof. André Y. Kusumoto

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

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

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 4. Comunicação e Sincronização de Processos

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

Segundo trabalho prático de implementação Sistema de reserva de assentos

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

Controle de Concorrência

Capítulo 13: Sistemas de E/S. Operating System Concepts 8 th Edition

CURSO TÉCNICO EM INFORMÁTICA SISTEMAS OPERACIONAIS II MEMÓRIA VIRTUAL

Escalonamento da CPU

Processos. Adão de Melo Neto

Escalonamento da CPU

Tempos e Estados Globais. ECO036 - Sistemas Paralelos e Distribuídos

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

Fixo (41) Vivo (41) Tim (41) Claro (41) OI (41) Sistema Descomplicado CNPJ

ALP Algoritmos e Programação. . Um modelo de Computador

Introdução e Conceitos Básicos

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

Questões de Múltipla escolha

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

Questões de Provas de Períodos Anteriores

Sistemas Distribuídos

Tratamento de Exceções. LPG II Java. Tratamento de Exceções. Conceito de Exceções. Exemplo

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

Edital de Seleção 055/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

Sincronização em Sistemas Distribuídos

LICENCIATURA EM COMPUTAÇÃO. Resenha Livro Sistemas Operacionais 4ª edição Capítulo quatro: Gerencia do processador

Transcrição:

DEADLOCKS IMPASSES

O que é um Deadlock? 2

O que é um Deadlock? Cenário Dois processos : Gravar CD com dados do scanner Processo A solicita o CD é autorizado Processo B solicita o scanner é autorizado Processo A solicita o scanner é negado Processo B solicita o CD é negado Processos A e B estão em deadlock Como proceder? E se os hardware fosse acessados de forma compartilhada? Não é exclusividade dos processos Banco de dados, arquivos no disco, threads,... Recursos 3

Eventos necessários para utilizar de um recurso Requisitar o recurso Se recurso não disponível quando solicitado Processo requisitante terá que esperar» Processo ficara constantemente solicitando até ser atendido Usar o recurso Utilizar o recurso Nessa etapa que os deadlock ocorrem Liberar o recurso Liberar recurso 4

Como ocorre um Deadlock? Cenários... public void process_a(){ resource_1.down(); resource_2.down(); use_both_resources(); resource_2.up(); resource_1.up(); }...... public void process_b(){ resource_1.down(); resource_2.down(); resource_2.down(); resource_1.down(); use_both_resources(); resource_2.up(); use_both_resources(); resource_1.up(); } resource_2.up();... }... Quem define a ordem de execução? 5

Natureza do recurso Preemptíveis Podem ser retirados do processo proprietário sem prejuízo Ex.: Memória Não Preemptíveis Não podem ser retirado, pois causam prejuízos Ex.: Gravação de DVD... public void process_a(){ resource_1.down(); resource_2.down(); use_both_resources(); resource_2.up(); resource_1.up(); }...... public void process_b(){ resource_2.down(); resource_1.down(); }... use_both_resources(); resource_1.up(); resource_2.up(); Recurso 2 é preemptível 6

O que é um Deadlock? Um conjunto de processos estará em situação de deadlock se todo processo pertencente ao conjunto estiver esperando por um evento que somente outro processo desse mesmo conjunto poderá fazer acontecer Condiçõesnecessárias para ocorrência de deadlock Condição de exclusão mútua Processo solicita recurso de forma exclusiva Condição de posse e espera Processos que, em um determinado instante, retêm recursos concedidos anteriormente podem requisitar novos recursos Condição de não preempção Recursos não preemptível: Recursos concedidos previamente não podem ser forçadamente tomados Condição de espera circular Deve se um encadeamento de 2 ou maisprocessos Cada um encontra-se à espera de um recurso que está sendo usando pelo membro seguinte dessa cadeia 7

Como identificar um Deadlock? Visual : Modelados através de Grafos dirigidos Simbolização Quadrado - Recursos Círculo - Processos Seta - Situação (a) recurso R alocado ao processo A (b) processo B está solicitando/esperando pelo recurso S (c) processos C e D estão em deadlock sobre recursos T e U 8

Modeladosatravés de Grafos dirigidos Ordem de Execução da CPU 9

Modeladosatravés de Grafos dirigidos Ordem de Execução da CPU Sem deadlock, pois não formou um ciclo 10

Estratégia para tratar deadlock Detectar e Recuperar Evitando deadlock Prevenir Ignorar 11

Detectar e Recuperar Objetivo Não tenta prevenir a ocorrência de deadlock Deixara queocorra Ficara a procura e ao encontrá-lo ira tratá-lo Cenários Um (1) recurso de cada tipo Modelagem com grafos dirigidos Múltiplos recursos de cada tipo Baseado em matrizes 12

Detectar e Recuperar Um recurso de cada tipo Visual Utiliza a modelagem de grafos dirigidos Verificar a existência de um ou mais ciclos Real Algoritmo de detecção de deadlock Modele o grafo dirigido abaixo P. A usa R e precisa de S P. B precisa de T P. C precisa de S P. D usa U e precisa de S e T P. E usa T e precisa de V P. F usa W e precisa de S P. G usa V e precisa de U Como ficou o grafo? Deadlock? Pq? Quais processos e recursos envolvidos? 13

Detectar e Recuperar Um ciclo pode se encontrado no grafo -> Deadlock Fácil visualização, e o computador? Algoritmo para detecção de deadlock 14

Detectar e Recuperar Algoritmo para detecção de deadlock Sentido: Esquerda para direita e Superior para inferior L=[] ; L=[R] ; L=[R,A] ; L=[R,A,S] ; L=[R,A] ; L=[R] ; L=[] -> R completado L=[] ; L=[A] ; L=[A,S] ; L=[A] ; L=[] -> A completo L=[] ; L=[B] ; L=[B,T] ; L=[B,T,E] ;... L=[B,T,E,V,G,U,D] ; L=[B,T,E,V,G,U,D,S] ; L=[B,T,E,V,G,U,D] ; L=[B,T,E,V,G,U,D,T] 15

Detectar e Recuperar Múltiplos recursos de cada tipo Utiliza matrizes e vetores Tentar procurar um processo que posso ser atendido por completo 16

Detectar e Recuperar Múltiplos recursos de cada tipo Processo 1 Não satisfeito, pois não existe cd-rom disponível Processo 2 Não satisfeito, pois não existe scanner disponível Processo 3 Satisfeito -> Após executado -> A = (2 2 2 0) Com fica o resto da execução? Processo 2: Satisfeito -> Após executado -> A = (4 2 2 1) Processo 1: Satisfeito Todos os processos podem ser executados -> sem deadlock 17

Detectar e Recuperar Múltiplos recursos de cada tipo Exercício de fixação De acordo com o exemplo abaixo verifique Se esta em deadlock Como chegou a esta conclusão? 18

Detectar e Recuperar Encontramos o deadlock? E Agora? Como recuperar? Técnicas de recuperação Por Preempção Verificar se algum recurso é do tipo preemptível Por Retrocesso Checkpoints» Salva estado atual da máquina Retornar até o último checkpoint» Trabalho é perdido Por Eliminação de Processo Simples e radical Eliminar um ou mais processos presentes no ciclo 19

Estratégia para tratar deadlock Detectar e Recuperar Prevenir Ignorar 20

Evitando deadlock Objetivo Verifica se a alocação de um recurso pode gerar um deadlock Apenas liberar o recurso se a solicitação Como identificar se um recurso pode ser liberado? 21

Evitando deadlock Estados Seguros e Inseguros Utilizam a analise dos estados para alocar ou não um recurso Estado Seguro Não esta em deadlock Nenhuma ordem de execução dos processo causa deadlock Estado Inseguro Pode surgir um deadlock Não significa deadlock Existe(m) ordem de execução que gera deadlock 22

Evitando deadlock Analise dos estados Qual o estado em A? Verificar se se existe um processo que pode ser atendido por completo? 23

Evitando deadlock Estados Seguros e Inseguros DEADLOCK 24

Evitando deadlock Algoritmo do banqueiro Analisa como seria o novo estado com a solicitação do recurso Seguro: Requisição é aceita Inseguro: Requisição é negada Necessidade Saber número máximo de cada recurso que um processo poderá solicitar Número de processos Tipo dos algoritmos Para um único recurso Para múltiplos recursos Algoritmos são semelhantes aos anteriores 25

Evitando deadlock Algoritmo do banqueiro Exercício de fixação De acordo com os exemplos abaixo verifique se é seguro ou inseguro Como chegou a esta conclusão? 26

Evitando deadlock Algoritmo do banqueiro Exercício de fixação De acordo com os exemplos abaixo verifique se é seguro ou inseguro Como chegou a esta conclusão? Recursos Existentes Recursos Alocados Recursos Disponíveis 27

Evitando deadlock Algoritmo do banqueiro Teoria x Prática Teoria Funcional Prática Inútil Processos não sabem quantos recursos necessitam Número de processos dinâmicos Recursos podem sumir 28

Estratégia para tratar deadlock Detectar e Recuperar Evitando deadlock Ignorar 29

Prevenção Objetivo Garantir que os deadlock nunca iram acontecer Será possível? Como? Evitar uma das condições para ocorrência de deadlock Condição de exclusão mútua Condição de posse e espera Condição de não preempção Condição de espera circular 30

Prevenção Condição de exclusão mútua Evitar que um processo acesse o recurso diretamente Ex.: Utilização das impressoras Utilização da técnica de spoll Condição de posse espera Evitar que processo em posse de um recurso espere por outros recursos Solicitar que os processos solicitem todos os recursos no início Algoritmo do banqueiro Retêm recursos que outros processos podem estar usando 31

Prevenção Condição de não preempção Tratar todos os recursos como preemptível Considere um processo A esteja gravando um CD-ROOM No meio da gravação o processo B solicitou o CD-ROOM Processo B ira tomar o CD-ROOM do processo A Ocasionará um erro na gravação! inviável! Opção inviável 32

Prevenção Condição de espera circular Idéias Possuir apenas um recurso de cada vez Liberar o recurso atual antes de solicitar o novo Fornecer uma numeração global para os recursos Apenas pode alocar recurso se a numeração for maior que do recurso atual A requisitar recurso i e B requisitar recurso j Se i <> j e i > j» A não pode requisitar j, pois tem menor prioridade que i Se i <> j e i < j» B não pode requisitar i, pois tem menor prioridade que j Dificuldade: Como encontrar uma ordem satisfatória?» Impossível 33

Prevenção Resumo 34

Estratégias para tratar deadlock Detectar e Recuperar Evitando deadlock Prevenir 35

Ignorar Algoritmo do Avestruz Idéia Fingir que não há problema Não fazer nada! Ctrl + alt + del É aceitável se Deadlocks ocorrerem com pouca freqüência Custo da prevenção for alto 36

Outras formas de prevenção Bloqueio em duas fazes BD Bloqueio de registro e depois atualização Fases Fase um : Bloqueio Fase dois: Atualização Impasses de Comunicação Envio de dados pela rede Timeout dos pacotes Livelocks Condição de inanição (starvation) 37