Tópicos  Especiais em Informática I
Sistemas Distribuídos

 
 
   

                                Sistemas Distribuídos

Os Sistemas Distribuídos têm, por seu maior objetivo, melhorar a comunicação entre os computadores, ou melhor, propiciar a integração destes num sentido amplo que pode envolver facilidade de mudanças futuras, rapidez nas Trocas de Informações, confiabilidade na execução dos processos.
Porém, no desenvolvimento de um sistema distribuído encontramos um pequeno problema : software. Devido ao elevado tamanho e complexidade de sistemas distribuídos, o seu desenvolvimento exige um conhecimento bastante profundo dessa área e a utilização de técnicas adequadas de concepção e projeto de sistemas.

Sistemas distribuídos são compostos por vários processadores independentes.
Sistemas distribuídos se diferenciam dos demais computadores pelo acoplamento fraco entre os processadores, ou seja, os computadores não tem acesso a uma memória comum. Toda a interação deve ser realizada por troca de mensagens através de canais de comunicação.

Sistemas distribuídos apresentam um problema intrínseco, qual seja, o de garantir a integridade e consistência dos dados distribuídos pelos vários processadores. Esse problema força a aplicação de técnicas de tolerância a falhas, mesmo quando não existe qualquer outra exigência mais forte quanto a confiabilidade e disponibilidade imposta pela aplicação. Entretanto, sistemas distribuídos apresentam uma redundância natural, extremamente proveitosa para o emprego de tolerância a falhas. Defeito em um processador não precisa provocar necessariamente o colapso de todo o sistema. O serviço pode ser mantido em um sistema, que pode ser reconfigurado usando os demais processadores disponíveis.

Sistemas distribuídos não possuem memória compartilhada nem relógio global. Uma melhor análise das características de um sistema distribuído pode ser conduzida considerando um modelo físico e um modelo lógico. No modelo físico os componentes são a rede de comunicação e os nodos (processador, relógio local, memória local volátil, armazenamento não volátil, interface de rede, software).
No modelo lógico a aplicação é vista como distribuída, a rede é considerada completamente conectada e os canais entregam mensagens na ordem que foram enviadas, mas não existe ordenação total de mensagens, apenas ordenação parcial.

Os sistemas distribuídos são classificados como síncronos ou assíncronos, dependendo se existe um limite de tempo finito e conhecido para troca de mensagens.
É usual também o conceito de time out associado aos sistemas síncronos.

Sistemas síncronos e assíncronos correspondem a dois extremos no modelo de comportamento temporal de sistemas. Um comportamento intermediário chamada assíncrono temporizado vem adquirido importância. Esse modelo se baseia no fato que computadores reais possuem relógios locais com pequeno desvio em relação ao tempo real.

A ordenação de eventos relaciona a dificuldade de determinar relações temporais devido à inexistência de relógio global, ou seja, determinar a ordenação temporal de eventos que ocorrem em nodos diferentes, medidos por relógios diferentes. Relógios lógicos (introduzidos por Lamport em 1978) são um meio de assinalar um número a um evento. Não possuem nenhuma relação com o tempo físico. Podem ser implementados através de timestamps. O relógio lógico pode ser usado para ordenação total de eventos (mas não temporal) e é suficiente para a maior parte das aplicações que não exigem respostas críticas quanto ao tempo.

O objetivo do sistema distribuído é criar na cabeça de seus usuários a ilusão de que toda rede de computadores nada mais é do que um único sistema de tempo compartilhado (time-sharing), em vez de um conjunto de máquinas distintas. Portanto um Sistema Distribuído é aquele que roda em um conjunto de máquinas sem memória compartilhada, máquinas que mesmo assim aparecem como um único computador para seus usuário