Sistemas Distribuídos

Documentos relacionados
ALGORITMOS DISTRIBUÍDOS Deadlock

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

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

Capítulo 3 Deadlocks - Impasses

Capítulo 3 Deadlocks - Impasses

Capítulo 7: Impasse (Deadlocks( Deadlocks)

Sistemas Operacionais. DeadLock. Edeyson Andrade Gomes.

SOP - TADS Impasses - Deadlock

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

DEADLOCKS IMPASSES. Vinícius Pádua

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

SISTEMAS OPERACIONAIS

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

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

SSC0640 Sistemas Operacionais I

MAC422/5753 Sistemas Operacionais

Deadlocks (impasses)

Sistemas Distribuídos

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

Deadlocks. Sistemas Operacionais - Professor Machado

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

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

Capítulo 3. Deadlocks. Recursos

Programação Concorrente. 2º Semestre 2010

Sistemas Operacionais. Deadlock

Sincronização e Comunicação entre Processos

Fundamentos de Sistemas Operacionais

Recursos. Exemplos de recursos:

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

Sistemas Operacionais: Deadlocks

Sistemas Operacionais. Prof. André Y. Kusumoto

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

Impasses. Pedro Cruz. EEL770 Sistemas Operacionais

Sistemas Operacionais

Inversão de prioridades

Impasses. Pedro Cruz. EEL770 Sistemas Operacionais

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

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

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

Sincronização em Sistemas Distribuídos

Sincronização e comunicação entre processos

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

Sistemas Distribuídos Capítulo 8 - Aula 13

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

Sistemas Distribuídos Capítulo 6 - Aula 12

Sistemas de Informação. Sistemas Operacionais

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

Resumo: Sistemas Operacionais Abertos

Exclusão Mútua em Sistemas Distribuídos

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Sincronização e Concorrência

Sistemas Distribuídos Estados globais. Vinícius Fernandes Soares Mota

Fundamentos de Sistemas Operacionais

Contato. professorluisleite.wordpress.com

SISTEMAS DISTRIBUÍDOS

Modelagem e implementação de programas concorrentes

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Sistemas Operativos. Deadlocks FEUP. 23 de Outubro, 2009

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

Sistemas Operacionais Bloqueios Perpétuos

INE5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA - Prova 1 12/05/2014 Aluno: Bosco

Técnicas de Controle de Concorrência

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

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

Controle de Concorrência

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

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

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

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

Aula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

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

Escalonamento de Processos

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Distribuídos

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

Sistemas Operacionais: Sincronização entre processos

Arquitetura e organização de computadores

Sistemas Distribuídos

Sincronização em SDs I. Bruno M. Carvalho Sala: 3B2 Horário: 35T34

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

Sistemas Distribuídos

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

(Model Checking) Estes slides são baseados nas notas de aula da Profa. Corina

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

1B Conceitos Básicos: Indique Verdade/Falso

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

Redes de Computadores

Exclusão Mútua Distribuída. Algoritmos para eleição de um coordenador ou líder. UBI, DI, Paula Prata SDTF T04 1

Capítulo 2 Processos e Threads

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas de Entrada e Saída

Sistemas Distribuídos. Capítulo 6 - Aula 10

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

Controle de Concorrência

Sistemas Distribuídos

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

Comunicação entre Processos

Revisão Ultima aula [1/2]

Sistemas Distribuídos Aula 17

Transcrição:

Sistemas Distribuídos Deadlocks Referência Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Seção 11.5 pág. 340-344 2

Conteúdo Detecção de deadlock distribuído Detecção centralizada Detecção distribuída Prevenção de deadlock distribuído 3 Deadlocks em Sistemas Problema semelhante aos sistemas com um único processador porém mais complexo Definição: Um conjunto de processos está em uma situação de deadlock, se cada processo do conjunto estiver esperando por um evento que somente outro processo pertencente ao conjunto poderá fazer acontecer 4

Deadlocks em Sistemas Condições para ocorrer deadlock: Condição de exclusão mútua: cada recurso ou está alocado a exatamente um processo ou está disponível Condição de posse e espera: processos que estejam de posse de recursos obtidos anteriormente podem solicitar novos recursos Condição de não-preempção: recursos já alocados a processos não podem ser tomados a força. Eles precisam ser liberados explicitamente pelo processo que detém sua posse Condição de espera circular: deve existir uma cadeia circular de 2 ou + processos, cada um deles esperando por um recurso que está com o próximo membro da cadeia 5 Deadlocks em Sistemas Dois tipos: Comunicação entre processos: processo A tenta enviar msg para B, que tenta enviar msg para C que tenta enviar msg para A (ex.: indisponibilidade de buffer) Alocação de recursos: vários processos competem por recurso como dispositivos de E/S, arquivos etc 6

Deadlocks em Sistemas Estratégias para tratar deadlocks: algoritmo do avestruz: ignorar o problema detecção: permitir o deadlock e tentar a recuperação prevenção: tornar estruturalmente impossível a ocorrência de deadlocks evitar deadlocks com uma política de alocação de recursos cuidadosa 7 Detecção de deadlocks Quando um deadlock é detectado em um sistema operacional convencional a forma convencional de resolvê-lo é matando um ou mais processos Em um sistema baseado em transações atômicas pode-se abortar uma ou mais transações. 8

Detecção centralizada de deadlocks Cada máquina possui um grafo para seus próprios processos e recursos. Um coordenador central deve manter o grafo de recursos para todo sistema. Quando o coordenador detecta o deadlock ele mata um dos processos envolvidos. 9

Detecção centralizada de deadlocks Manutenção da informação: Sempre que um arco for adicionado ou removido o coordenador é informado Cada máquina envia periodicamente uma lista de arcos adicionados e removidos O coordenador solicita as informações quando forem necessárias 11 Máquina 0 Máquina 1 Coordenador posse necessidade A S S C A S C necessidade posse R T R T posse B B A S C Mensagens: B libera R B solicita T R B T

Detecção centralizada de deadlocks Pseudo-Deadlock Situação onde ocorre um ciclo no grafo devido ao atraso de informações. Falso deadlock algoritmo de Lamport 13 Detecção distribuída de deadlocks Algoritmo de Chandy-Misra-Haas (1983) Os processos podem requisitar vários recursos É distribuído, portanto não há um processo coordenador. É assumido: que o tempo de transmissão de uma mensagem é arbitrário mas finito. não há perda de mensagens, são recebidas na ordem em que são enviadas. 14

0 (0,8,0) 1 2 (0,2,3) 3 Máquina 0 4 5 (0,4,6) (0,5,7) 6 7 8 Máquina 1 Máquina 2 Detecção distribuída de deadlocks Mensagens de dois tipos são usadas neste algoritmo de detecção. do tipo pergunta : inicia a procura no grafo do iniciante para identificar os processos no conjunto de dependentes do tipo resposta : relata os resultados desta busca para o iniciante Cada processo Pi usa certas variáveis locais para gravar sua própria visão do estado global. 16

Detecção distribuída de deadlocks O algoritmo é executado quando um processo deve esperar por algum recurso. Um msg de sondagem é enviada para o(s) processo(s) detentor(es) do(s) recurso(s). A msg é composta por 3 números: o processo bloqueado, o processo que enviou a msg e o processo para o qual ela está sendo enviada. Ex.: o processo 0 enviaria (0,0,1). 17 Detecção distribuída de deadlocks Qndo um processo recebe a msg ele verifica se ele está aguardando algum recurso de algum processo. Se estiver atualiza a msg substituindo o segundo número pelo seu próprio e o terceiro pelo processo que ele está aguardando e envia a msg. Se estiver bloqueado por causa de vários, cada um deles recebe uma msg diferente. Se a msg voltar à origem (primeiro número) existe um deadlock. 18

Detecção distribuída de deadlocks Como desfazer o deadlock? Forçar o processo que iniciou a sondagem a cometer suicídio. E se vários executam a sondagem ao mesmo tempo? Identificação de cada processo na msg. Ao final matar o processo de maior número. 19 Detecção distribuída de deadlocks Teoria versus Prática: Como fazer que um processo bloqueado envie msgs? 90% dos deadlocks envolvem apenas 2 processos. 20

Prevenção de deadlocks Prevenção: projetar o sistema de forma a impedir a ocorrência de deadlocks. Ex.: os processos só podem deter a posse de um único recurso por vez os processo deve pedir todos os recursos necessários com antecedência Sistemas com tempo global e transações atômicas 21 Prevenção de deadlocks Idéia: atribuir a cada transação um relógio global que marca o início da transação. Qndo um processo vai ser bloqueado por espera de recurso que outro processo está usando verifica-se o carimbo de tempo de cada transação o mais velho tem maior prioridade (evita starvation) o mais novo tem maior prioridade 22

precisa de recurso detém recurso precisa de recurso detém recurso velho - 10 jovem - 20 jovem - 20 velho - 10 espera morte Algoritmo esperar-morrer Prevenção de deadlocks Se o processo jovem precisar de um recurso de posse do mais velho ele deve ser morto. Provavelmente ele vai ser reiniciado e tentar novamente. Se o processo mais velho ainda não liberou o recurso ele vai ser morto novamente. Outra opção é fazer a preempção do processo mais jovem. Isto faz com que a transação seja reiniciada. E se o processo requisitar o recurso agora de posse do mais velho ele deve esperar. 24

precisa de recurso detém recurso precisa de recurso detém recurso velho - 10 jovem - 20 jovem - 20 velho - 10 preempção espera Algoritmo wound-wait (ferir-esperar) Exercícios Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Capítulo 11 Exercícios 22 e 23 (pág. 345) 26