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