07 Sincronização

07 Sincronização

(Parte 1 de 2)

Instructor’s Guide for Colouris et al.

Sistemas Distribuídos

Guilherme Bertoni Machado

Faculdades SENAC Sistemas de Informação

13 de março de 2008

Guilherme Bertoni Machado Sistemas Distribuídos

Instructor’s Guide for Colouris et al. Modelo de Interação (Clocks e Eventos)

Em SDs é difícil estabelecer limites de tempo sobre o tempo tomado para execução de processos, entrega de mensagens ou clocks’s drifts.

Duas posições extremas, opostas, proporcionam um par de modelos simples: o primeiro, tendo uma forte hipótese sobre o tempo e o segundo, não fazendo nenhuma hipótese sobre o mesmo.

Sistemas Distribuídos Síncronos Sistemas Distribuídos Assíncronos

Guilherme Bertoni Machado Sistemas Distribuídos

Instructor’s Guide for Colouris et al. Sistemas Distribuídos Síncronos

Hadzilacos e Toueg [1994] definem um SD síncrono, como sendo um sistema com os seguintes limites definidos:

o tempo para executar cada etapa de um processo tem limites inferiores e superiores conhecidos; cada mensagem transmitida sobre um canal é recebida dentro de um tempo limitado conhecido; cada processo tem um clock local cuja drift rate de tempo real tem um limite conhecido.

Guilherme Bertoni Machado Sistemas Distribuídos

Instructor’s Guide for Colouris et al. Sistemas Distribuídos Síncronos

É possível sugerir limites inferiores e superiores para o tempo de execução de processos, retardo de mensagens e clock drift em um SD.

Mas, é difícil chegar em valores realísticos e prover garantia dos valores escolhidos.

A menos que os valores dos limites possam ser garantidos, qualquer projeto baseado sobre os valores escolhidos, não poderá ser confiável.

Contudo, modelando um algoritmo como um sistema síncrono, pode ser útil para dar uma idéia de como ele se comportará em um sistema distribuído real.

Em um SD síncrono é possível usar timeouts, por exemplo, para detectar a falha de um processo, como mostrado na seção sobre modelo de falhas.

Guilherme Bertoni Machado Sistemas Distribuídos

Instructor’s Guide for Colouris et al. Sistemas Distribuídos Síncronos

SDs síncronos podem ser construídos.

O que é requerido é que os processos realizem tarefas com requisitos de recursos conhecidos para os quais eles possam ser garantidos ciclos de processador suficientes e capacidade de rede, bem como, os processos serem supridos com clocks com drift rates limitados.

Guilherme Bertoni Machado Sistemas Distribuídos

Instructor’s Guide for Colouris et al. Sistemas Distribuídos Assíncronos (Definição)

Muitos SDs, por exemplo, a Internet, são muitos úteis sem serem qualificados como SDs síncronos.

Portanto, necessitamos um modelo alternativo: um SD assíncrono é um sistema no qual não existem limites sobre:

Rapidez na execução de processos

Por exemplo, uma etapa de um processo pode tomar 1 pico-segundo (1seg x 10E-12) e uma outra etapa 1 nano-segundo (1 seg x 10E-9); tudo o que se pode dizer é que cada etapa pode levar um tempo longo arbitrariamente.

Atraso na transmissão de mensagens

Por exemplo, uma mensagem de um processo A para um processo B pode ser entregue em tempo mínimo e uma outra pode tomar alguns minutos ou horas. Em outras palavras, uma mensagem pode ser recebida após um tempo longo arbitrário.

Guilherme Bertoni Machado Sistemas Distribuídos

Instructor’s Guide for Colouris et al. Sistemas Distribuídos Assíncronos (Definição)

Drift Rates dos clocks - A drift rate de um clock é arbitrária.

O modelo assíncrono não permite nenhuma hipótese sobre intervalos de tempo envolvida em qualquer execução. Isto, exatamente modela a Internet, na qual não existe nenhum limite intrínseco sobre carga de servidores e carga de rede, e portanto, sobre quanto tempo ela leva para transferir um arquivo usando FTP. Algumas vezes uma mensagem de email pode levar dias para chegar ao destinatário.

Guilherme Bertoni Machado Sistemas Distribuídos

Instructor’s Guide for Colouris et al. Sistemas Distribuídos Assíncronos

Alguns problemas de projeto podem ser resolvidos mesmo com estas hipóteses.

Por exemplo, embora a Web não possa sempre prover uma resposta particular dentro de um limite de tempo razoável, browsers tem sido projetados para permitir usuários fazerem outras coisas enquanto eles estão esperando.

Qualquer solução que é válida para um sistema distribuído assíncrono é também válida para um sistema síncrono.

SDs reais são muito frequentemente assíncronos por causa da necessidade para processos compartilharem processadores e para canais de comunicação compartilharem a rede (o meio de transmissão).

Guilherme Bertoni Machado Sistemas Distribuídos

Instructor’s Guide for Colouris et al. Sistemas Distribuídos Assíncronos

Por exemplo, se vários processos de caráter desconhecido estão compartilhando um processador, então a performance resultante de qualquer um deles não pode ser garantida.

Mas, existem muitos problemas de projeto que não podem ser resolvidas para SDs Assíncronos, mas que podem ser resolvidas quando alguns aspectos de tempo são usados.

Por exemplo, a necessidade de um stream de dados multimídia para ser entregue antes do seu deadline é um desses problemas. Para problemas tais como este, um modelo sincronizado é requerido.

A impossibilidade de se sincronizar clocks em um sistema assíncrono

Ordenação de Eventos

(Parte 1 de 2)

Comentários