Guia Completo sobre Sistemas Distribuídos

Classificado em Computação

Escrito em em português com um tamanho de 6,18 KB

O que é um Sistema Distribuído

Um sistema distribuído é um conjunto de computadores independentes que parecem, para o usuário, como um único sistema. Dois aspectos são fundamentais:

  • Independência de Hardware: As máquinas são autônomas.
  • Independência de Software: Os usuários percebem o sistema como uma unidade única.

Objetivos de um SD

Deve conectar usuários a recursos, sendo que estes estão distribuídos através de uma rede.

Vantagens de um SD sobre um Sistema Centralizado

  • Economia: Microprocessadores oferecem uma relação custo/performance melhor que mainframes.
  • Velocidade: Pode ter mais poder de processamento que um mainframe.
  • Distribuição Espacial: Aplicações podem envolver separação espacial dos dados.
  • Confiabilidade: Se uma máquina falha, o sistema continua operando.
  • Escalabilidade: O poder de processamento pode ser aumentado facilmente adicionando novas máquinas.

Vantagens de um SD sobre um PC Convencional

  • Compartilhamento de Dados: Permite que muitos usuários acessem a mesma base de dados.
  • Compartilhamento de Recursos: Permite o uso de periféricos compartilhados na rede (ex: impressoras).
  • Comunicação: Torna a comunicação rápida e simples (ex: mensagens eletrônicas).
  • Flexibilidade: Grandes conjuntos de dados podem ser processados usando máquinas disponíveis, reduzindo custos.

Desvantagens de um Sistema Distribuído

  • Software: É pequeno o número de sistemas capazes de funcionar de maneira distribuída.
  • Rede: A estrutura pode ficar saturada dependendo do número de máquinas.
  • Segurança: Permite acesso fácil a dados secretos, embora contornável com políticas de segurança.

Conceitos de Hardware

Considerando sistemas construídos com uma coleção de computadores independentes, podemos dividi-los em dois grupos:

  • Multiprocessadores: Possuem memória compartilhada.
  • Multicomputadores: Não possuem memória compartilhada.

A diferença essencial é que, em um multiprocessador, existe um único espaço de endereçamento virtual compartilhado por todos os processadores.

Multiprocessadores

Compostos por um número finito de processadores conectados a um barramento comum, acessando o mesmo espaço de memória (ex: placa-mãe com vários processadores). As caches monitoram constantemente o barramento, processo chamado de snoopy ou snooping.

Comutação Crossbar

Para sistemas com mais de 64 processadores, divide-se a memória em módulos conectados via comutação crossbar. Cada processador e memória possui conexão ao sistema com uma chave eletrônica na intersecção. A vantagem é o acesso simultâneo à memória; o lado negativo é a necessidade de n² chaves, tornando-se inviável para valores elevados de n.

Sistemas Multicomputadores Homogêneos

  • Grade: Fáceis de implementar em placas de circuito impresso, ideais para problemas bidimensionais (teoria dos grafos, visão robótica).
  • Hipercubo: Cubo n-dimensional onde cada vértice é um processador e cada lado é uma conexão.

Tipos de Sistemas Distribuídos

  • Sistemas de Computação Distribuídos: Focados em computação de alto desempenho.
  • Sistemas de Computação de Cluster: Conjunto de estações ou PCs conectados por rede local de alta velocidade. Utilizam programação paralela. Exemplo: Clusters Beowulf (nó mestre gerencia a alocação de nós e middleware).
  • Sistemas de Computação em Grade: Computadores heterogêneos sem especificações rígidas de hardware ou SO, reunidos para colaboração via organização virtual.
  • Sistemas de Informação Distribuídos: Focados na integração de múltiplas aplicações e interoperabilidade (ex: integração de aplicações empresariais).
  • Sistemas de Processamento de Transações: Processamento de grande volume de dados (ex: bancos).

Propriedades ACID de Transações

  • Atômica: Todas as operações são executadas ou nenhuma é.
  • Consistente: A transação não viola invariantes do sistema.
  • Isolada: Transações concorrentes não interferem entre si.
  • Durável: Alterações comprometidas são permanentes.

Comunicação em Sistemas Distribuídos

Como a maioria não utiliza memória compartilhada, a comunicação baseia-se no envio de mensagens.

Protocolos de Transporte

  • TCP: Orientado a conexão.
  • UDP: Não orientado a conexão.
  • RTP: Formato para transmissão de dados em tempo real (não garante entrega).

Protocolos de Alto Nível

  • FTP: Transferência de arquivos.
  • HTTP: Gerenciamento de páginas Web.

Modelos de Comunicação

  • Persistente: Armazena mensagens até a entrega (ex: servidor de e-mail).
  • Transiente: Armazena apenas enquanto remetente e receptor estão ativos.
  • Assíncrona: Remetente continua a execução após enviar a mensagem.
  • Síncrona: Remetente é bloqueado até que a mensagem seja recebida.
  • RPC (Chamada de Procedimento Remoto): Permite chamar procedimentos em outras máquinas.

Sockets

Terminais de comunicação para envio e recebimento de dados:

  • Sockets de Fluxo: Serviço orientado a conexão (TCP).
  • Sockets de Datagrama: Serviço sem conexão (UDP), não garante entrega ou ordem.

Entradas relacionadas: