1 sincronização capítulo 5 – tanenbaum capítulo 10,11,12 e 13 - coulouris

Post on 17-Apr-2015

123 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Sincronização

Capítulo 5 – Tanenbaum

Capítulo 10,11,12 e 13 - Coulouris

2

Sumário

Introdução Sincronização de Relógio Relógios Lógicos Estado Global Algoritmos Distribuídos Transações Distribuídas

3

Introdução

Em um sistema centralizado a noção de tempo é não-ambígua

Quando um processo quer saber do tempo, efetua uma chamada e o

kernel responde

Se um processo A pergunta o tempo e pouco depois o processo B faz o

mesmo, certamente haverá diferença entre as respostas

Em sistemas distribuídos esta tarefa não é trivial, pois não existe uma

noção de relógio compartilhado globalmente

Cada processo, em diferentes máquinas, possui sua própria idéia de

tempo e dificilmente existe acordo sobre isso

A comunicação entre processos em sistemas distribuídos está

fortemente relacionada a forma como estes processos sincronizam

Sincronização refere-se a “ fazer a coisa certa na hora certa”

4

Network

5

Sincronização de Relógio

Durante o envio e recebimento de mensagens o tempo é levado

em consideração

Existem várias formas de sincronizar relógios em sistemas

distribuídos, mas todos são essencialmente baseados em troca

de informações de tempo

Variações no atraso das comunicações e a forma como estas

variações são tratadas, determinam a precisão dos algoritmos

de sincronização de relógio

Em muitos casos, conhecer o tempo absoluto não é necessário,

o que conta é que os eventos relacionados a diferentes

processos ocorram na ordem correta

6

Relógio Lógicos

Relógio físico

TAI – International Atomic Time

UCT – Universal Coordination Time

Para muitos propósitos , é suficiente que todas as máquinas

concordem sobre o tempo

Contudo, este acordo não precisa ser sobre o tempo absoluto mas

sobre a ordem em que os eventos ocorrem (noção de relógio lógico)

Quando um processo recebe uma mensagem, ele a coloca em uma fila

local, ordenada de acordo com seu selo de tempo (timestamp)

7

Problemas de Inconsistência

Cenário de atualização de débito e crédito em banco de dados replicados

8

Estado Global

Em muitas situações, é útil conhecer o estado global de um sistema distribuído

O estado global de um sistema distribuído consiste de:

estado local de cada processo

mensagens que estão atualmente em trânsito, ou seja, que foram enviadas mas ainda

não foram entregues

O que exatamente é o estado local de um processo depende no que estamos

interessados

No caso de banco de dados distribuídos, o estado pode consistir dos registros do

banco de dados e excluir registros temporários usados para processamento

Uma possível utilização do estado global é a detecção de deadlock (o estado

local não evolui)

9

Coordenação de Processos Distribuídos

Muitos algoritmos distribuídos de sincronização requerem a eleição de um

processo coordenador

Em geral, não interessa qual dos processos tomará para si esta

responsabilidade

Se todos os processos são exatamente iguais, com nenhuma característica que

os diferencie, a escolha se baseia em critérios aleatórios

Em geral, algoritmos de eleição de coordenador tentam localizar o processo de

maior processID e designá-lo como coordenador

A diferença entre algoritmos está na forma de localização e identificação do

coordenador

Existem vários algoritmos de eleição de coordenador, dentre eles:

Algoritmo Bully

Algoritmo Ring

10

Algoritmo Bully Proposto por Garcia-Molina

(1982) Quando um processo qualquer

(P) percebe que o coordenador não está respondendo a requisições, ele inicia uma eleição P envia mensagem ELECTION

para todos os processos de processID maiores

Se ninguém responder, P ganha a eleição

Se alguém responder, a eleição acaba e P efetua sua tarefa

11

Algoritmo Ring

Segue basicamente as mesmas orientações do algoritmo Bully

Diferencia pela circulação da mensagem ELECTION em forma de anel

Eventualmente, dois processo podem iniciar o processo de eleição no mesmo

momento, ocasionando problemas

Não usa passagem de token (diferente de outras abordagens)

É assumido que os processos estão ordenados fisicamente ou logicamente

Cada processo conhece seu sucessor

Se o o sucessor está inoperante a mensagem é enviada ao próximo da cadeia

Ganha eleição quem tiver o maior número e esteja ativo, obviamente

12

Exclusão Mútua em Sistemas Distribuídos

Sistemas envolvendo múltiplos processos são mais facilmente

programados através do uso de regiões críticas

Quando um processo tem que ler ou alterar estrutura de dados

compartilhada, primeiro entra na região crítica para obter

exclusão mútua

Em sistemas mono-processados, regiões críticas são protegidas

por semáforos, monitores e construtores similares

Em sistemas distribuídos tais mecanismos devem sofrer

adaptações

13

Algoritmo centralizado

Forma mais direta para obter exclusão mútua em sistemas distribuídos

Simula o ambiente mono-processado Um processo é eleito coordenador Sempre que um processo quer entrar na região crítica, envia

uma mensagem ao coordenador Se não existe outro processo na região crítica, o coordenador

envia mensagem garantindo a permissão Apesar de simples de implementar, o coordenador é um ponto

de falha Mensagens podem sofrer atrasos e perdas (request, grant,

release

14

Algoritmo Centralizado

P1 solicita entrar na região crítica e coordenador concede permissão

P2 solicita o mesmo, mas fica aguardando com requisição em fila

Quando P1 libera a região crítica, P2 obtém permissão

15

Algoritmo Distribuído Alternativa a um único ponto de falha (coordenador) em algoritmo

centralizado Quando um processo deseja entrar na região crítica, envia mensagem

para todos (inclusive para si mesmo) É assumida a comunicação confiável, através de ack Quando um processo recebe a mensagem (request) de outro processo,

a ação depende do seu estado a respeito da região crítica identificada na mensagem Se o receptor não está na RC e não quer entrar, envia OK para emissor Se o receptor está na RC, não responde a mensagem e enfileira a

requisição Se o receptor deseja entrar na RC, compara timestamp na mensagem com

o tempo contido na mensagem que ele próprio enviou. O menor vence.

Desvantagens: mais lento, mais complexo, mais caro

16

Transações Distribuídas Um conceito fortemente relacionado a exclusão mútua é o conceito de

transação Transações têm em comum a proteção de um recurso compartilhado

contra acesso simultâneo por processos concorrentes Em particular, transações permitem a um processo acessar e modificar

múltiplos itens de dados como uma única ação atômica Se o processo falhar durante a transação, tudo é recuperado a um

ponto antes do início da transação (abordagem tudo ou nada) Programação usando transações requer primitivas especiais que

devem ser fornecidas pelo ambiente de suporte ou pela linguagem A lista de primitivas depende do tipo de objeto em uso na transação:

Mail system: SEND, RECEIVE, FORWARD Sistema contábil: READ, WRITE

17

Transações Distribuídas

BEGIN_TRANSACTION e END_TRANSACTION são delimitadores da

transação

As operações entre estes delimitadores formam o corpo da transação

Todo o corpo da transação é completamente executado ou nenhuma

operação será (all-or-nothing)

Propriedades ACID das transações:

Atomic: para o exterior a transação é indivisível

Consistent: a transação não viola invariantes do sistema

Isolated: transações concorrentes não interferem entre si

Durable: uma vez que a transação conclui, as alterações são permanentes

18

Classificação de Transações

1. Flat Transaction:

Série de operações que satisfazem as propriedades ACID

2. Nested Transaction:

Transação construída a partir de um determinado número de

transações (que podem rodar em paralelo)

Importante para sistemas distribuídos

3. Distributed Transaction:

Difere sutilmente de Nested Transactions

19

Comparação entre Transações

Nested Transaction: divisão lógica em uma hierarquia de sub-transações

Distributed Transaction: transações indivisíveis que operam sobre dados

distribuídos

20

Controle de Transações Obter atomicidade na presença de falhas é um importante aspecto a considerar (a ser

tratado posteriormente) As propriedades consistent e isolation são basicamente manipuladas por controle de

concorrência através de: Data manager, Scheduler e Transaction manager

top related