Upload
elliando-dias
View
3.183
Download
3
Embed Size (px)
DESCRIPTION
Citation preview
Introdução aos Sistemas Introdução aos Sistemas DistribuídosDistribuídos
Alexandre BragançaAlexandre Bragança
20012001
DEI / ISEPDEI / ISEP
baseado em “Tecnologia de Sistemas Distribuídos”, baseado em “Tecnologia de Sistemas Distribuídos”, Marques e Guedes, FCAMarques e Guedes, FCA
Sistemas DistribuídosSistemas Distribuídos
Aplicação DistribuidaAplicação Distribuida Sistema DistribuidoSistema Distribuido SuporteSuporte
– RedesRedes– Sistemas OperativosSistemas Operativos– LinguagensLinguagens– ModelosModelos– ......
EvoluçãoEvolução
Condicionantes TecnológicasCondicionantes Tecnológicas– Redes de ComputadoresRedes de Computadores– Computadores PessoaisComputadores Pessoais– Sistemas AbertosSistemas Abertos– Arquitecturas MultiprocessadorArquitecturas Multiprocessador
EvoluçãoEvolução
Condicionantes dos UtilizadoresCondicionantes dos Utilizadores– Utilizadores FinaisUtilizadores Finais
Partilha de informação, comunicação, Partilha de informação, comunicação, transparência, ...transparência, ...
– ProgramadoresProgramadores Normalização de interfaces, independência Normalização de interfaces, independência
de tipo de arquitectura, ...de tipo de arquitectura, ...
– GestoresGestores Evolução, extensibilidade, fiabilidade, gestão Evolução, extensibilidade, fiabilidade, gestão
global do sistema, ...global do sistema, ...
Problemas IntroduzidosProblemas Introduzidos
Comunicação por mensagemComunicação por mensagem– vs espaço de endereçamento partilhadovs espaço de endereçamento partilhado
Modelo de FaltasModelo de Faltas– Uma definição de sistema distribuido é a Uma definição de sistema distribuido é a
seguinte:seguinte:““está-se a usar um sistema distribuido quando a está-se a usar um sistema distribuido quando a
falha de um computador de que nunca se ouviu falha de um computador de que nunca se ouviu falar nos impede de continuar a trabalhar”falar nos impede de continuar a trabalhar”
DesempenhoDesempenho
Problemas IntroduzidosProblemas Introduzidos
Distribuição do Sistema OperativoDistribuição do Sistema Operativo– Software do sistema repartido entre várias Software do sistema repartido entre várias
máquinas -> problemas de sincronizaçãomáquinas -> problemas de sincronização SegurançaSegurança
– Este tipo de sistema está mais vulnerável a Este tipo de sistema está mais vulnerável a problemas de segurançaproblemas de segurança
HeterogeneidadeHeterogeneidade– Arquitecturas diversas, diversas Arquitecturas diversas, diversas
representações de dados (Ex: ASCII vs representações de dados (Ex: ASCII vs EBCDICEBCDIC
VantagensVantagens
Adequação à Repartição Adequação à Repartição GeográficaGeográfica
ModularidadeModularidade ExtensibilidadeExtensibilidade Maior DisponibilidadeMaior Disponibilidade Desempenho OptimizadoDesempenho Optimizado Custo (Custo (downsizingdownsizing))
Abordagens PossiveisAbordagens Possiveis
… … para Software que executa em para Software que executa em Sistemas Computacionais que não Sistemas Computacionais que não partilham uma memória comumpartilham uma memória comum
Programação directa sobre o Programação directa sobre o periférico que permite comunicar periférico que permite comunicar com outro sistemacom outro sistema
Abordagens PossiveisAbordagens Possiveis
Bibliotecas de funções ou Bibliotecas de funções ou interfaces de programação interfaces de programação normalizados (Ex: normalizados (Ex: SocketsSockets))
Aplicações standard construidas Aplicações standard construidas sobre esses interfaces (Ex: telnet, sobre esses interfaces (Ex: telnet, ftp)ftp)
Abordagens PossiveisAbordagens Possiveis
Plataformas Cliente/ServidorPlataformas Cliente/Servidor– Consistem numa evolução das Consistem numa evolução das
interfaces anterioresinterfaces anteriores Este tipo de ambientes implementam Este tipo de ambientes implementam
serviços adicionais:serviços adicionais:– RPCRPC– Gestão de nomesGestão de nomes– SegurançaSegurança– Sincronização de relógiosSincronização de relógios– etc.etc.
Abordagens PossiveisAbordagens Possiveis
Sistema Operativo DistribuidoSistema Operativo Distribuido
Por exemplo:Por exemplo:
““Se a gestão de processos for Se a gestão de processos for realizada de forma integrada, os realizada de forma integrada, os processos passam a ser entidades processos passam a ser entidades com capacidade de migrar entre as com capacidade de migrar entre as máquinas existentes no sistema.”máquinas existentes no sistema.”
Arquitecturas Arquitecturas MultiprocessadorMultiprocessador
Multiprocessadores de Memória Multiprocessadores de Memória PartilhadaPartilhada– Uma cópia do SO executa simultaneamente Uma cópia do SO executa simultaneamente
e em paralelo em todos os processadorese em paralelo em todos os processadores– Problemas de sincronização mesmo Problemas de sincronização mesmo
relativamente ao código dos sistemas relativamente ao código dos sistemas operativosoperativos
– Os programas do utilizador também devem Os programas do utilizador também devem ser ser diferentesdiferentes para tirar partido dos para tirar partido dos processadores (processadores (threadsthreads))
Arquitecturas Arquitecturas MultiprocessadorMultiprocessador
Multiprocessadores de Memória Multiprocessadores de Memória DistribuidaDistribuida– Processadores com uma memória privada Processadores com uma memória privada
interligados por uma rede de alto débitointerligados por uma rede de alto débito– Processadores apenas comunicam por troca de Processadores apenas comunicam por troca de
mensagensmensagens– A rede de interligação é geralmente fiávelA rede de interligação é geralmente fiável– Todos os processadores correm o mesmo sistema Todos os processadores correm o mesmo sistema
operativooperativo– Utilizador tem uma visão do sistema idêntica a Utilizador tem uma visão do sistema idêntica a
um sistema centralizadoum sistema centralizado
ProtocolosProtocolos
A API A API SocketsSockets
Comunicações UDPComunicações UDP
Socket
Sendto
Recvfrom
Bind
Socket
Bind
MensagemSendto
Recvfrom
Mensagem
Comunicação TCPComunicação TCP
Socket
Write
Read
Accept
Listen
Bind
Socket
Write
Read
ConnectLigação
Mensagem
Mensagem