16
Introdução aos Introdução aos Sistemas Distribuídos Sistemas Distribuídos Alexandre Bragança Alexandre Bragança 2001 2001 DEI / ISEP DEI / ISEP baseado em “Tecnologia de Sistemas baseado em “Tecnologia de Sistemas Distribuídos”, Marques e Guedes, FCA Distribuídos”, Marques e Guedes, FCA

Introdução Sistemas Distribuidos

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Introdução Sistemas Distribuidos

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

Page 2: Introdução Sistemas Distribuidos

Sistemas DistribuídosSistemas Distribuídos

Aplicação DistribuidaAplicação Distribuida Sistema DistribuidoSistema Distribuido SuporteSuporte

– RedesRedes– Sistemas OperativosSistemas Operativos– LinguagensLinguagens– ModelosModelos– ......

Page 3: Introdução Sistemas Distribuidos

EvoluçãoEvolução

Condicionantes TecnológicasCondicionantes Tecnológicas– Redes de ComputadoresRedes de Computadores– Computadores PessoaisComputadores Pessoais– Sistemas AbertosSistemas Abertos– Arquitecturas MultiprocessadorArquitecturas Multiprocessador

Page 4: Introdução Sistemas Distribuidos

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, ...

Page 5: Introdução Sistemas Distribuidos

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

Page 6: Introdução Sistemas Distribuidos

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

Page 7: Introdução Sistemas Distribuidos

VantagensVantagens

Adequação à Repartição Adequação à Repartição GeográficaGeográfica

ModularidadeModularidade ExtensibilidadeExtensibilidade Maior DisponibilidadeMaior Disponibilidade Desempenho OptimizadoDesempenho Optimizado Custo (Custo (downsizingdownsizing))

Page 8: Introdução Sistemas Distribuidos

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

Page 9: Introdução Sistemas Distribuidos

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)

Page 10: Introdução Sistemas Distribuidos

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.

Page 11: Introdução Sistemas Distribuidos

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.”

Page 12: Introdução Sistemas Distribuidos

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))

Page 13: Introdução Sistemas Distribuidos

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

Page 14: Introdução Sistemas Distribuidos

ProtocolosProtocolos

A API A API SocketsSockets

Page 15: Introdução Sistemas Distribuidos

Comunicações UDPComunicações UDP

Socket

Sendto

Recvfrom

Bind

Socket

Bind

MensagemSendto

Recvfrom

Mensagem

Page 16: Introdução Sistemas Distribuidos

Comunicação TCPComunicação TCP

Socket

Write

Read

Accept

Listen

Bind

Socket

Write

Read

ConnectLigação

Mensagem

Mensagem