Introdução aos Sistemas
Distribuídos
Alexandre Bragança
2001
DEI / ISEP
baseado em “Tecnologia de Sistemas Distribuídos”, Marques
e Guedes, FCA
Sistemas Distribuídos
Aplicação Distribuida
 Sistema Distribuido
 Suporte

– Redes
– Sistemas Operativos
– Linguagens
– Modelos
– ...
Evolução

Condicionantes Tecnológicas
– Redes de Computadores
– Computadores Pessoais
– Sistemas Abertos
– Arquitecturas Multiprocessador
Evolução

Condicionantes dos Utilizadores
– Utilizadores Finais

Partilha de informação, comunicação,
transparência, ...
– Programadores

Normalização de interfaces, independência de
tipo de arquitectura, ...
– Gestores

Evolução, extensibilidade, fiabilidade, gestão
global do sistema, ...
Problemas Introduzidos

Comunicação por mensagem
– vs espaço de endereçamento partilhado

Modelo de Faltas
– Uma definição de sistema distribuido é a
seguinte:
“está-se a usar um sistema distribuido quando a
falha de um computador de que nunca se ouviu
falar nos impede de continuar a trabalhar”

Desempenho
Problemas Introduzidos

Distribuição do Sistema Operativo
– Software do sistema repartido entre várias
máquinas -> problemas de sincronização

Segurança
– Este tipo de sistema está mais vulnerável a
problemas de segurança

Heterogeneidade
– Arquitecturas diversas, diversas
representações de dados (Ex: ASCII vs
EBCDIC
Vantagens
Adequação à Repartição Geográfica
 Modularidade
 Extensibilidade
 Maior Disponibilidade
 Desempenho Optimizado
 Custo (downsizing)

Abordagens Possiveis
… para Software que executa em
Sistemas Computacionais que não
partilham uma memória comum

Programação directa sobre o periférico
que permite comunicar com outro
sistema
Abordagens Possiveis
Bibliotecas de funções ou interfaces de
programação normalizados (Ex:
Sockets)
 Aplicações standard construidas sobre
esses interfaces (Ex: telnet, ftp)

Abordagens Possiveis

Plataformas Cliente/Servidor
– Consistem numa evolução das interfaces
anteriores

Este tipo de ambientes implementam serviços
adicionais:
–
–
–
–
–
RPC
Gestão de nomes
Segurança
Sincronização de relógios
etc.
Abordagens Possiveis

Sistema Operativo Distribuido
Por exemplo:
“Se a gestão de processos for realizada
de forma integrada, os processos
passam a ser entidades com capacidade
de migrar entre as máquinas existentes
no sistema.”

Arquitecturas Multiprocessador

Multiprocessadores de Memória
Partilhada
– Uma cópia do SO executa simultaneamente
e em paralelo em todos os processadores
– Problemas de sincronização mesmo
relativamente ao código dos sistemas
operativos
– Os programas do utilizador também devem
ser diferentes para tirar partido dos
processadores (threads)
Arquitecturas Multiprocessador

Multiprocessadores de Memória
Distribuida
– Processadores com uma memória privada
interligados por uma rede de alto débito
– Processadores apenas comunicam por troca de
mensagens
– A rede de interligação é geralmente fiável
– Todos os processadores correm o mesmo sistema
operativo
– Utilizador tem uma visão do sistema idêntica a um
sistema centralizado
Protocolos
A API Sockets
Comunicações UDP
Socket
Socket
Bind
Bind
Mensagem
Sendto
Re cvfrom
Mensagem
Sendto
Re cvfrom
Comunicação TCP
Socket
Socket
Bind
Ligação
Connect
Listen
Accept
Mensagem
Read
Read
Mensagem
Write
Write
Download

Introdução aos Sistemas Distribuidos