Sincronização em Sistemas Distribuídos

Documentos relacionados
SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Sistemas Distribuídos Capítulo 6 - Aula 12

Sistemas Distribuídos

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

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

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

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

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

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Sincronização em 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

Sincronização e Concorrência

Sistemas Distribuídos Capítulo 6 - Aula 10

Sistemas Distribuídos Aula 17

Sistemas Distribuídos

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

Desenvolvimento de Aplicações Distribuídas

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

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

Sistemas Distribuídos Capítulo 8 - Aula 15

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

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

Tempos e Estados Globais. ECO036 - Sistemas Paralelos e 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 Comunicação entre Processos

Modelos Fundamentais. Introdução. Interação. Falhas. Segurança. Prof. Adriano Fiorese

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

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos

Ordenação. Relógios lógicos

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

Sistemas Distribuídos

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

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

MC714 - Sistemas Distribuídos. Leandro Villas

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

Sistemas Distribuídos Aula 15

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

Ordenação. Sistemas Distribuídos e Tolerância a Falhas. Universidade da Beira Interior 07/08

Sistemas Distribuídos: Conceitos e Projeto

Sistemas Distribuídos. Aleardo Manacero Jr.

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

Tempo e sincronização

Sincronização e comunicação entre processos

Introdução Sincronização Interna Sincronização Externa. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Sistemas Distribuídos Capítulo 8 - Aula 13

1- Replicação de Dados - A replicação de dados permite lidar com falhas ao nível dos nós que impeçam o acesso

Sistemas Distribuídos

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

ALGORITMOS DISTRIBUÍDOS Algoritmos de eleição

falhas em sistemas distribuídos

1- Replicação de Dados - A replicação de dados permite lidar com falhas ao nível dos nós que impeçam o acesso

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

Sistemas Distribuídos Aula 16

Introdução Tempo Lógico Relógios Lógicos de Lamport Relógios Lógicos Vetoriais. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Programação Paralela e Distribuída Lista de Exercícios P2 2008/1

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

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

Sistemas Distribuídos Aula 10

Tolerância a Falhas com Máquinas de Estado

Artigo de Seminário Processamento Distribuído: Cliente/Servidor e Cluster Fabrizio Borelli 1, Gabriel Nóbrega 1, Henrique Dorotea 1, Maitê Balhester 1

Sistemas Distribuídos Capítulo 8 - Aula 14

Sistemas Distribuídos

Sistemas Distribuídos

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

08/02/2017. Metodologia de trabalho Sistema de notas Trabalhos Artigos Celulares Presença Entrega de trabalhos Uso de laboratório

08/08/2016. Metodologia de trabalho Sistema de notas Trabalhos Artigos Celulares Presença Entrega de trabalhos Uso de laboratório

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

Comunicação orientada a mensagens

Modelos Fundamentais de um SD. Modelo de Interação ou Sincronismo

Sincronização. Tempo e Relógios. Sincronização de Relógios - Algoritmo de Cristian - Algoritmo de Berkeley - Network Time Protocol

Sistemas Operacionais

Comunicação entre processos (2)

Fundamentos de Sistemas Operacionais

Unidade 3. Controle de Concorrência. Primitivas de Programação Concorrente Clássica

Programação concorrente (processos e threads)

Sistemas Distribuídos Aula 13

Aluísio Augusto Silva Gonçalves 17 de maio de 2018

Sincronização e Comunicação

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

Sistemas Distribuídos

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

TWAMP. Descritivo técnico

Comunicação entre Processos

Sincronização em Sistemas Distribuídos

Arquitetura de Computadores Unidade 2 Organização Funcional dos Sistemas de Computação tópico 2.3 Subsistemas de E/S

Modelos Fundamentais de um SD. Modelo de Interação ou Sincronismo

Processos em Sistemas Distribuídos: Comunicação entre Processos, Nomeação e Sincronização

Fabrizio Borelli Gabriel Nobrega Henrique Dorotea Maitê Balhester

Sincronização. Sincronização de Relógios. Relógios Físicos

SINCRONIZAÇÃO ATRAVÉS DO CLOCK

Arquitetura de sistemas distribuídos

Algoritmos Distribuídos Modelo Computacional

Unidade III. Unidade III. Existe uma tendência dos sistemas de informação a funcionarem cada vez mais em Intranets e na Internet.

Rede de computadores Cliente- servidor. Professor Carlos Muniz

5.1 Gerenciamento de Memória

Transcrição:

Sincronização em Sistemas Distribuídos Universidade Federal do ABC Turma: Ciência da Computação Prof. Dr. Francisco Isidro Massetto

Sincronização Como as regiões críticas são implementadas em um SD? Como os recursos são alocados aos processos? Em SO, os problemas de exclusão mútua e região crítica são solucionados através de semáforos ou monitores. Tais métodos utilizam memória compartilhada para implementar a solução, portanto, impossível de ser feito em um SD. Pergunta: como promover a sincronização em um ambiente distribuído?

Sincronização através do CLOCK Os Sistemas Distribuídos utilizam algoritmos distribuídos na implementação de serviços e aplicações. Geralmente não é desejável ter todas as informações sobre o sistema em um único lugar. Os algoritmos distribuídos apresentam as seguintes propriedades: As informações relevantes são espalhadas pelas múltiplas máquinas; Os processos tomam as decisões baseadas somente em informações locais; Um ponto de falha que paralise todo o sistema deve ser evitado; Não existe relógio comum ou um tempo global.

Clock Lógico Em Lamport (1978) - Time, Clocks, and the Ordering of Events in a Distributed System é provada que a sincronização dos relógios é possível e apresenta o algoritmo para se conseguir isto. Posteriormente, em outro artigo ele defende que a sincronização dos clocks não precisa ser absoluta, pelos seguintes motivos: Se dois processos não interagem, não é necessário que seus clocks sejam sincronizados. Usualmente o que importa não é que todos os processos concordem com o exato tempo em que os eventos aconteceram, mas que concordem na ordem em que os eventos ocorreram.

Clock Lógico Clock Lógico - consistência interna é o que importa e não quanto eles estão próximos do tempo real. Clock Físico - os clocks não podem diferir do tempo real mais que um determinado valor.

Clock Lógico Algoritmo de Lamport Lamport definiu a seguinte relação: acontece-antes : a b (a acontece antes de b) Significa que todos os processos concordam que primeiro o evento a ocorreu e depois disto, o evento b ocorreu. Esta relação pode ser observada em duas situações: Se a e b são eventos no mesmo processo, e a ocorre antes de b, então a b é verdadeiro. Se a é o evento de uma mensagem sendo enviada por um processo, e b é o evento da mensagem sendo recebida por outro processo, então a b é também verdadeiro.

Algoritmo de Lamport A relação acontece-antes é transitiva, logo: se a b e b c, então a c Se dois eventos x e y, acontecem em diferentes processos que não trocam mensagens, então x y não é verdadeiro, nem y x é verdadeiro. Estes eventos são ditos concorrentes, o que significa que nada pode ser dito sobre quando eles aconteceram.

Algoritmo de Lamport É necessário um modo de medição de tal forma que para todo evento a, possa ser assumido que ele ocorreu em um tempo C(a) no qual todos os processos concordem. Se a b, então C(a) < C(b).

Algoritmo de Lamport O que acontece de estranho entre as trocas de mensagens?

Algoritmo de Lamport

Algoritmo pra Sincronização de CLOCK Algoritmo de Berkeley Nenhuma máquina tem um receptor de Tempo Universal Coordenado. O Servidor de Tempo é ativo, e requer, periodicamente de cada máquina, o tempo do seu relógio. O Servidor de Tempo calcula a média dos tempos (considerando o tempo dele mesmo) e diz para cada máquina como ajustar seu relógio para ter seu tempo igual à média calculada.

Algoritmo de Berkeley

Exclusão Mútua Algoritmo Centralizado A melhor maneira de se conseguir exclusão mútua em um sistema distribuído é imitar o que é feito no sistema centralizado (com um único processador). Um processo é eleito como Coordenador. Quando um processo quer entrar na região crítica, ele envia uma mensagem requisitando ao Coordenador permissão para isso. Se nenhum outro processo está na região crítica, o Coordenador envia uma resposta dando permissão.

Algoritmo Centralizado Ao receber a mensagem o processo requisitante entra na região crítica. Caso outro processo peça permissão para entrar na região crítica, e o Coordenador sabendo que outro processo está na região, não envia resposta bloqueando este processo até que ele possa entrar na região. Uma outra opção é enviar uma mensagem negando a solicitação. Quando o processo deixa a região, ele envia para o Coordenador uma mensagem liberando a região crítica.

Algoritmo Centralizado

Exclusão Mútua Algoritmo Distribuído O Algoritmo centralizado tem o problema de uma falha no Coordenador inviabilizar o mecanismo (todo elemento centralizador é um ponto crítico de falhas). Algoritmo distribuído - Quando um processo quer entrar na região crítica, ele constrói uma mensagem contendo o nome da região, número do processo e o tempo corrente. A mensagem é enviada para todos os outros processos. Quando um processo recebe uma mensagem de requisição de outro processo sua ação vai depender de sua situação relativa à região crítica

Algoritmo Distribuído Possibilidades: Se o receptor não está na região crítica e não quer entrar, ele envia de volta uma msg OK; Se o receptor já está na região, ele não responde e coloca a requisição na fila; Se o receptor quer entrar na região crítica, mas ainda não o fez, ele compara o tempo da msg que chegou com o tempo da msg que ele enviou para os outros processos. O menor tempo vence.

Algoritmo Distribuído Quando todas as permissões chegam o processo pode entrar na região crítica. Quando ele sai da região crítica, ele envia uma msg OK para todos os processos na sua fila. Qual o problema deste algoritmo??

Exclusão Mútua Algoritmo Token Ring É construído um anel lógico por software no qual a cada processo é atribuído uma posição no anel. Quando o anel é inicializado, o processo 0 ganha o token. O token circula no anel (passa do processo k para o k+1). Quando o processo ganha o token ele verifica se ele quer entrar na região crítica. Caso positivo, ele entra na região, realiza o seu trabalho e ao deixar a região passa o token para o elemento seguinte do anel. Não é permitido entrar em uma segunda região crítica com o mesmo token. Se o processo não quer entrar na região crítica ele simplesmente passa o token. Como conseqüência quando nenhum processo quer entrar na região crítica o token fica circulando pelo anel.

Algoritmo Token Ring Processos 0 2 4 9 7 1 6 5 8 3 1 2 3 Token n 0 4 9 5 8 7 6

Algoritmo Token Ring Problemas: Se o token é perdido ele precisa ser regenerado. A detecção de um token perdido é difícil. Se um processo falhar também ocorrem problemas. A solução é fazer o processo que recebe o token confirmar o recebimento. O processo que falhou pode ser retirado do anel, e o token enviado para o processo seguinte. Essa solução requer que todos os processos conheçam a configuração do anel.

Comparação dos Algoritmos Algoritmo Mensagens Atrasos Problemas Centralizado 3 2 Falha do Coordenador Distribuído 2.(n-1) 2.(n-1) Falha de Qualquer Processo Token Ring 1 a infinito 0 a n-1 Perda do Token

Eleição do Coordenador Muitos algoritmos distribuídos requerem um processo como coordenador. Geralmente não importa qual seja o processo coordenador, mas um deles tem que exercer esta função.

Algoritmo do Ditador Quando um processo nota que o coordenador não está respondendo a uma requisição, ele inicia uma eleição. A eleição é convocada por um processo P da seguinte forma: P envia uma mensagem de ELEIÇÃO para todos os processos com números maiores que o seu; Se nenhum responde, P ganha a eleição e se torna coordenador; Se um processo com número maior responder, ele assume a coordenação.

Algoritmo do Ditador Quando um processo recebe uma mensagem de ELEIÇÃO de um processo de menor número, ele envia uma mensagem OK de volta indicando que ele vai tomar o comando. Depois disso ele inicia uma eleição. Eventualmente todos os processos abandonam a disputa, com exceção de um que é o novo coordenador. Ele envia uma mensagem a todos os processos avisando que é o novo coordenador. Se um processo que estava fora do ar volta, ele inicia uma eleição. Caso ele seja o processo ativo de número mais alto rodando no sistema, ele ganha a eleição e assume a coordenação.