This document provides an introduction to distributed systems, covering their definition, characteristics, advantages and disadvantages, challenges, examples, and objectives for studying them. Key points discussed include how distributed systems allow independent computers to appear as a single system, their reliance on communication between parts, and the difficulties in building them reliably.
2. Sumário
• I n t r o d u ç ã o a o s S i s t e m a s D i s t r i b u í d o s ;
• D e f i n i ç ã o e c a r a c t e r í s t i c a s d e S D s ;
• Va n t a g e n s e I n c o n v e n i ê n c i a s d e S D s ;
• N e c e s s i d a d e s e d e s a f i o s d e S D s
• E x em p los e Objetivos.
3. História
• Computadores iniciais: Caros e grandes
• Anos 50 e 60
• Multiprogramação: diversos programas executados
concorrentemente pela CPU
❖Objetivo: otimizar a utilização da CPU
• Início dos anos 60: Sistemas Time Sharing
✓Evolução do hardware: Redução do tamanho, do
preço, aumento da velocidade
• Primeiro passo na direção dos Sistemas Distribuídos
✓ Incorpora dois conceitos fundamentais:
❖ Partilha de recursos
❖ Acesso remoto
3
4. História (Cont.)
• Final dos anos 60 e início dos anos 70: Surgimento das redes
• Final dos anos 60 e início dos anos 70: Unix
• Final dos anos 70: Protocolo TCP/IP
✓Início dos anos 80: Estações de trabalho
✓Início dos anos 80: microprocessadores e estações de trabalho
✓redução do custo (em relação aos mainframes)
• Final dos anos 80: estações de trabalho ligadas em rede
✓diversos serviços para comunicação entre pessoas/máquinas
❖ FTP, TELNET, E-mail...
4
5. Motivação
• Avanços em microeletrônica (processadores mais rápidos e baratos)
• Avanços em comunicações
✓redes mais eficientes e confiáveis
• Popularidade das redes de computadores
✓redes de telefonia móvel, redes corporativas, redes caseiras
✓redes de computadores de alta velocidade (Myrinet ~2Gb/s)
• Partilha de recursos
✓Componentes de Hardware (disco, impressora)
✓Software (Ficheiros, bases de dados, programas)
✓Outros (vídeo, áudio)
5
6. Sistemas Distribuídos
O que é um sistema distribuído?
A collection of independent computers
that appears to its users as a single
coherent system (Tanenbaum, 2023).
Sistema computacional com diversas partes
Diferentes programas a executar em diferentes
computadores;
Partes interagem para oferecer funcionalidades.
7. Principais Características
Qual principal característica de um
sistema distribuído?
diferença com sistemas centralizados
Comunicação
Diferentes partes precisam comunicar
para se computar
comunicação →troca de informação
Fonte de grandes problemas
muito mais difícil de construir
8. Principais Características (Cont.)
•Processos são executados concorrentemente
✓não existe um controle global
✓processos utilizam troca de mensagens para coordenar suas ações
•Inexistência de relógio global
✓noção de tempo global é importante na coordenação de processos
✓sincronização de relógios possui um limite de precisão
•Falhas independentes
✓a falha de um dos componentes (rede, máquinas, programas) não
implica a falha do sistema como um todo.
8
9. Vantagens de SDs
❑ Maior funcionalidade
✓ as vezes não é possível a solução ser centralizado;
❑ Maior escalabilidade
✓ Responde a grandes necessidades;
❑ Maior robustez
✓ Funciona mesmo com falhas;
❑ Maior transparência
✓ Esconde do utilizador aspetos irrelevantes
❑ Facilidade de expansão
✓ permite aumentar o poder de processamento
/armazenamento sem desfazer daquilo que já
possui, isto é, de maneira gradativa
10. Desvantagens dos SDs
•Maior dificuldade na garantia de segurança;
•Maior complexidade no desenvolvimento das
soluções;
•Gestão de recursos mais complexa;
•Alto custo para implementar aplicações colaborativas
• Causas:
✓recursos são fisicamente separados
✓mensagens podem atrasar
✓mensagens podem ser perdidas
✓Entre outros aspetos
10
11. Necessidades e desafios
• Comunicação segura
✓Quem enviou ?
✓Os dados foram modificados durante a transmissão?
✓Alguém não autorizado teve acesso aos dados?
• Confiabilidade em um ambiente não confiável
✓Máquinas podem falhar, mas o SD deve falhar parcialmente
✓Internet é uma rede não segura;
• Localização
✓colocar os recursos em um determinado local e permitir a localização destes
recursos quando necessário
• Coordenação
✓acordo entre os componentes distribuídos sobre o que fazer e de que forma
11
12. Exemplo Genérico
Vários tipos de
“computadores”
Vários tipos de papel
(role)
Várias formas de
comunicação
Várias camadas
lógicas
* Retirado de um artigo científico que propõe uma arquitetura para a
aplicação de localização de dispositivos em ambientes internos
Heterogêneo!
13. Exemplo Específico: Email
Vários tipos de
“computadores”
Vários tipos de
papel (role)
Várias formas de
comunicação
Várias camadas
lógicas
Realidade ainda mais complicada!
14. Vários tipos de
“computadores”
Vários tipos de
papel (role)
Várias formas de
comunicação
Várias camadas
lógicas
Realidade ainda mais complicado
Exemplo Específico: Jogos
16. Presença Definitiva
Sistemas distribuídos veio para ficar;
Praticamente tudo que utilizamos hoje faz
parte de algum sistema distribuído;
Exemplo de sistema não distribuído?
Jogos simples, como xadrez ou tetris;
Simulação ou computação numérica;
Algoritmo de Dijkstra para encontrar distâncias.
Mas temos versões distribuídas
de todos estes exemplos!
17. Computação Distribuidos Vs Paralela
Sistemas forte e fracamente acoplado
Partilha de memoria; comunicação frequente
18. Objetivos da Disciplina
Quais os desafios ao construir um
sistema distribuído?
Como tais desafios são superados?
Estudo de aspetos e técnicas gerais
encontradas em muitos sistemas distribuídos
Foco em técnicas e não em tecnologias
ex. Cliente/Servidor x HTTP
Muitos!