Sistemas Distribuídos Aula 17

Documentos relacionados
Sistemas Distribuídos

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

Sistemas Distribuídos Aula 16

Sistemas Distribuídos Aula 5

Sistemas Distribuídos Capítulo 6 - Aula 12

Sistemas Distribuídos Aula 15

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

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

SISTEMAS DISTRIBUÍDOS

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

Sistemas Distribuídos

Sincronização em Sistemas Distribuídos

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

Sistemas Distribuídos Aula 7

Sincronização em Sistemas Distribuídos

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

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

Desenvolvimento de Aplicações Distribuídas

Eleição de leader e Exclusão Mútua

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

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Sistemas Distribuídos

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

Tempo e sincronização

Sistemas Distribuídos Aula 20

Exclusão Mútua em Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS

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

Sincronização e Concorrência

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

Relógios Lógicos. Sumário. November 27, Relação Happened-Before. Relógios de Lamport. Relógios Vectoriais

Sistemas Distribuídos Capítulo 6 - Aula 10

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

Exclusão Mútua Distribuída

Comunicação orientada a mensagens

Fundamentos de Sistemas Operacionais

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

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

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

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

Sistemas Operacionais

Programação Concorrente Locks

Estrutura deste arquivo.. Comunicação Interprocesso Parte 1 de 2 - Cap. 2. Introdução 1 CONDIÇÕES DE CORRIDA

Recursos. Exemplos de recursos:

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

Programação de Sistemas Distribuídos e Concorrência

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

Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Distribuídos Aula 10

ALGORITMOS DISTRIBUÍDOS Deadlock

Sistemas Distribuídos. Aleardo Manacero Jr.

Sistemas Distribuídos Capítulo 8 - Aula 13

Unidade III Gerência de Processos

Sistemas Distribuídos Aula 19

Fundamentos de Sistemas Operacionais

ALGORITMOS DISTRIBUÍDOS Algoritmos de eleição

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

Estados globais. Capítulo 10: Visão geral. Estados globais. Estados globais. Estados globais. Estados globais

Ordenação. Relógios lógicos

Sistemas Distribuídos: Conceitos e Projeto Resiliência de Processos

Comunicação entre processos (2)

Revisão Ultima aula [1/2]

Sincronização e Comunicação entre Processos

Sistemas Distribuídos. Capítulo 7 - Aula 16

Comunicação entre Processos

Comunicação entre processos

Sistemas Distribuídos

Sincronização e Comunicação

Universidade Estadual Paulista Serviços de Tempo, exclusão mútua, eleição e acordo

Sistemas Distribuídos

Sincronização. Fernando Silva DCC-FCUP. Fernando Silva (DCC-FCUP) Sincronização 1 / 45

Programação Concorrente e Paralela. Noemi Rodriguez

Sistemas Distribuídos e Redes de Sensores. abril de 2013

Modelagem e implementação de programas concorrentes

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

Sistemas Operacionais: Sincronização entre processos

Sistemas Distribuídos Capítulo 8 - Aula 15

COMUNICAÇÃO ENTRE PROCESSOS

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Distribuídos

Fundamentos de Sistemas Operacionais

Sistemas Operacionais Concorrência. Carlos Ferraz Jorge Cavalcanti Fonsêca

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

Algoritmos Distribuídos Modelo Computacional

Sistemas Operacionais. Prof. André Y. Kusumoto

Modelagem e implementação de programas concorrentes

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Sincronização e Comunicação de/entre Processos. Na Aula Anterior... Nesta Aula. Comunicação entre Processos. Pipes 07/09/2016

Professor: Jarbas Araújo.

MC714 - Sistemas Distribuídos. Leandro Villas

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

Sistemas Operacionais Aula 7

Sincronização de Relógios e Relógios Lógicos. Histórico da comunicação. Tempo Global. Mecanismos de ordenação total

2) Em relação aos algoritmos de sincronização de relógios:

Execução Concorrente

Capítulo 2 Processos e Threads

Sistemas Operacionais

Transcrição:

Sistemas Distribuídos Aula 17 Aula passada Garantindo ordenação total Relógio de vetores Propriedades Aula de hoje Exclusão mútua Algoritmo centralizado Algoritmo de Lamport Token Ring

Exemplo Bancário (aula 4) Entretanto, diferentes processos podem atualizar o saldo executando em máquinas e locais diferentes retirada(conta, valor) { saldo = get_saldo(conta); saldo = saldo valor; put_saldo(conta, saldo); retorna saldo; } O que pode acontecer? Condição de Corrida! saldo pode não estar correto

Condição de Corrida Como resolvemos o problema antes? Exclusão Mútua! Usando mutex ou semáforos Podemos reusar a ideia? Não! Por que? Mutex/semáforos assumem acesso a memória compartilhada imediato com threads, bem difícil com processos

Exclusão Mútua Condição de corrida é inerente em sistemas distribuídos Precisamos de exclusão mútua, entre processos... acquire(lock) // executa região crítica release(lock)... Como implementar excluão mútua em sistemas distribuídos? Trocando Mensagens! única forma de coordenação

Demandas da Exclusão Mútua Algoritmo de exclusão mútua necessita Corretude: apenas um processo pode estar dentro da região crítica em cada instante Justiça: qualque processo que queira deve poder entrar na região crítica implica que sistema não possui deadlock justiça eventual: eventualmente processo entra na região crítica

Demandas da Exclusão Mútua Desejável que algoritmo de exclusão mútua ofereça Baixo overhead de mensagens Não possuir gargalos (ponto único de falha) Tolerar mensagens fora de ordem Tolerar entrada e saída de processos Tolerar falha de processos Tolerar perda de mensagens

Algoritmo Centralizado Ideias para um algoritmo centralizado? Coordenador: processo responsável por coordenar acesso a região crítica comunicação com mensagens utiliza fila para armazenar pedidos Processos: solicitam entrada na região crítica ao coordenador; liberam região crítica avisando coordenador

Algoritmo Centralizado Processo i... send(coordinator,request,i) receive(coordinator,grant) // executa região crítica send(coordinator,release)... Coordinator Q // fila de espera while(1) { m = receive() if m.request if Q.empty send(m.process,grant) Q.add(m.process) Funciona? } if m.release Q.remove() if!q.empty process = Q.head() send(process,grant)

Propriedades do Algoritmo Demandas básicas Centralizado corretude: claramente garante acesso exclusivo, pois apenas um Grant por vez Justiça: claramente se política de fila for FIFO, mas não se tivermos prioridade (ex. processo de menor índice tem preferência) Desempenho Quantas mensagens por acesso a região crítica? Três: Request, Grant, Release Limitações Ponto único de falha (o que ocorre se coordenator falhar, ou rebootar)

Exclusão Mútua de Lamport Algoritmo distribuído de exclusão mútua usando relógio de Lamport Ideia: todos os processos devem ter mesma ordem de entrada na RC necessitamos de uma ordenação total dos pedidos de entrada na RC Totally Ordered Multicast! Processos avisam quando querem entrar na RC Processos avisam quando saem da RC Acesso feito quando está na sua vez

Exclusão Mútua de Lamport Cada processo mantém uma fila de pedidos de entrada na RC Fila ordenada por valor do relógio lógico associado ao pedido de entrada relógio lógico de Lamport, adicionar identificador do processo (não há empates no valor de relógio) Para entrar na RC: envia pedido com timestamp local a todos processos (incluindo a si mesmo) Aguarda confirmação de todos os processos Se pedido estiver na cabeça da fila, e todas confirmações chegaram, entrar na RC

Exclusão Mútua de Lamport Ao sair da RC: Remover pedido da fila, enviar mensagem de release a todos os processos Outros processos: Ao receber um pedido, adicionar na fila em ordenado pelo timestamp do pedido, enviar confirmação com timestamp local Ao receber mensagem release, remover o pedido da cabeça da fila Se próprio pedido estiver na cabeça da fila, e todas confirmações chegaram, entrar na RC

Propriedades da Exclusão Mútua de Lamport Assumir rede FIFO e que mensagens não se perdem Corretude: Filas são ordenadas igualmente em todos os processos Justiça: ao enviar pedido em T1 e receber última confirmação em T2, todos os pedidos na fila deste processo terão tempos menores que T2 Quantas mensagens por acesso a região crítica? 3*(n-1): pedido, confirmação, release Limitações se um processo falhar? se mensagens trocarem de ordem na rede?

Algoritmo de Token Ring Ideia: Organizar processos em alguma topologia lógica, repassar mensagem (token) que dá acesso a região crítica ex. topologia em anel (já vimos isto antes) token processo com token acessa RC, se necessário envia token para próximo processo token circula pelos processos

Propriedades do Token Ring Corretude: token está em apenas em um processo em cada instante Justiça: acesso garantido antes de um mesmo processo acessar RC novamente (token circula) Quantas mensagens por acesso a região crítica? depende do número de processos querendo acessar! Se todos: 1 mensagem por acesso, se apenas 1: n mensagens por acesso Limitações se um processo falhar? se o token se perder?