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.