Sistemas Distribuídos Prof. Marcus Rodrigues [email protected] Introdução aos Sistemas Distribuídos Capítulo 1 – Aulas 3 e 4 Introdução aos Sistemas Distribuídos Prof. Marcus Rodrigues Material baseado no livro Distributed Systems: Principles and Paradigms Prentice Hall Copyright © Andrew S. Tanembaum, Maarten van Steen, 2001 Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Conceitos de software Prof. Marcus Rodrigues “Hardware é importante para sistemas distribuídos, mas é o software que determina amplamente com o que sistema distribuído se parece” [Tanembaum & van Steen] Sistemas distribuídos são como sistemas operacionais tradicionais • Gerenciador de recursos • Máquina virtual Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Prof. Marcus Rodrigues Conceitos de software Sistema Descrição Principal meta DOS Sistema operacional fortemente acoplado para sistemas multiprocessados e multicomputadores homogêneos Ocultar e gerenciar recursos de hardware NOS Sistema operacional fracamente acoplado para multi-computadores heterogêneo (LAN e WAN) Oferecer serviços locais para clientes remotos Middleware Camada adicional sobre o NOS implementando serviços de propósito geral Prover transparência distribuída DOS (Distributed Operating Systems) NOS (Network Operating Systems) Middleware Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Sistemas Operacionais Distribuídos Há dois tipos de Sistemas Operacionais Distribuídos (SOD): Prof. Marcus Rodrigues • Sistemas Operacionais Multiprocessados • Sistemas Operacionais Multicomputadores A funcionalidade de SOD é essencialmente a mesma de sistemas operacionais tradicionais para sistemas monoprocessados, exceto que eles tratam múltiplas CPUs. Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Sistema Operacional Monoprocessado (1) Prof. Marcus Rodrigues Máquina virtual Gerenciador de recursos Conveniência x eficiência Modos de execução kernel x usuário Organização de sistemas operacionais • Arquitetura monolítica • ... Arquitetura microkernel Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Sistema Operacional Monoprocessado (2) Aplicações separadas do código do sistema operacional através de um microkernel Prof. Marcus Rodrigues 1.11 Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Sistema Operacional Multiprocessado (1) Prof. Marcus Rodrigues Múltiplos processadores tendo acesso a uma memória compartilhada Dados compartilhados sendo acessados concorrentemente por múltiplos processadores • Garantir consistência • Primitivas de sincronização Aumento de desempenho através de múltiplos processadores • Número de CPUs transparente para a aplicação Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Sistema Operacional Multiprocessado (2) Exemplo de um monitor para proteger uma variável inteira contra acesso concorrente monitor Counter { private: Prof. Marcus Rodrigues int count = 0; public: int value() { return count;} void incr () { count = count + 1;} void decr() { count = count – 1;} } Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Sistema Operacional Multiprocessado (3) Exemplo de um monitor para proteger uma variável inteira contra acessos concorrentes, com uso de bloqueio de processos. monitor Counter { private: Prof. Marcus Rodrigues int count = 0; void decr() { if (count ==0) { int blocked_procs = 0; blocked_procs = blocked_procs + 1; condition unblocked; wait (unblocked); public: blocked_procs = blocked_procs – 1; int value () { return count;} } void incr () { else if (blocked_procs == 0) count = count + 1; else count = count – 1; } } signal (unblocked); } Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Sistema Operacional Multicomputador (1) Estrutura e complexidade totalmente diferente de sistemas multiprocessados Prof. Marcus Rodrigues • Não há compartilhamento de memória • Modo de comunicação • Passagem de mensagem Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Sistema Operacional Multicomputador (2) Estutura geral de um sistema operacional multicomputador Prof. Marcus Rodrigues 1.14 Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Sistema Operacional Multicomputador (2) Alternativas para bloqueio e buferização em passagem de mensagens. Prof. Marcus Rodrigues 1.15 Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Prof. Marcus Rodrigues Sistema Operacional Multicomputador (3) Ponto de sincronização Buffer de transmissão Comunicação confiável garantida ? Bloqueio do transmissor até que o buffer não esteja cheio Sim Não necessário Bloqueio do transmissor até que a mensagem seja enviada Não Não necessário Bloqueio do transmissor até que a mensagem seja recebida Não Necessário Bloqueio do transmissor até que a mensagem seja entregue Não Necessário Relação entre bloqueio, buferização e comunicação confiável. Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Sistemas de Memória Compartilhada Distribuído (1) Prática mostra que programar sistemas multicomputadores é mais difícil que programar sistemas multiprocessadores • Primitivas de sincronização x Passagem de Prof. Marcus Rodrigues mensagem Emular memória compartilhada em sistemas multicomputadores • Máquina de memória compartilhada virtual • Usar capacidade de memória virtual de cada nó • Memória compartilhada distribuída (DSM – Distributed Shared Memory) Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Sistemas de Memória Compartilhada Distribuído (2) a) Prof. Marcus Rodrigues b) c) Páginas do espaço de endereçamento distribuídas entre quatro máquinas Situação após CPU 1 referenciar página 10 Situação se a página 10 é apenas de leitura e replicação é usada Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Sistemas de Memória Compartilhada Distribuído (3) Falso compartilhamento de uma página entre dois processos independentes Prof. Marcus Rodrigues 1.18 Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Sistemas Operacionais de Redes (1) Prof. Marcus Rodrigues SOR provêm facilidades que permitam que usuários façam uso de serviçõs disponíveis em uma máquina específica Plataforma de hardware heterogênea Ausência de transparência Exemplos de serviços • rlogin máquina • rcp máquina1:arquivo1 máquina2:arquivo2 Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Sistemas Operacionais de Redes (2) Estrutura geral de um sistema operacional de redes Prof. Marcus Rodrigues 1-19 Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Sistemas Operacionais de Redes (3) Dois clientes e um servidor em um sistema operacional de redes Prof. Marcus Rodrigues 1-20 Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Sistemas Operacionais de Redes (4) Prof. Marcus Rodrigues Diferentes clientes podem montar os servidores em diferentes locais 1.21 Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Middleware (1) SOR x SOD Prof. Marcus Rodrigues Ambos, individualmente, não são qualificados com um sistema distribuído, de acordo com o que foi definido. • “Uma coleção de computadores independentes que parecem aos usuários como um único computador” [Tanenbaum &van Steen 01] Solução? Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Middleware (2) Estrutura geral de um sistema distribuído como middleware Prof. Marcus Rodrigues 1-22 Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Middleware (3) Prof. Marcus Rodrigues Cada sistema local integrante do sistema operacional de redes é responsável por prover gerenciamento de recursos locais, além de meios para conectar a outros computadores Meta: • Ocultar heterogeneidade da plataforma de hardware da aplicação usuária do sistema distribuída Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Modelos de Middleware Prof. Marcus Rodrigues Para tornar o desenvolvimento e integração de aplicações distribuídas o mais simples possível, a maioria dos middlewares é baseada em algum modelo, ou paradigma, para descrever a distribuição e comunicação dos componentes Exemplos de Modelos: • • • • Tudo é tratado como arquivo Chamada remota de procedimentos Objetos distribuídos Documentos distribuídos Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Serviços de um Middleware Facilidade de comunicação • Transparência de acesso • Ocultar a passagem de mensagens através da rede Prof. Marcus Rodrigues Nomeação Persistência Transações distribuídas Segurança Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Middleware e Flexibilidade Prof. Marcus Rodrigues 1.23 Em um sistema distribuído baseado em middleware aberto os protocolos usados por cada middleware devem ser os mesmos, bem como as interfaces oferecidas às aplicações. Sistemas Distribuídos – Capítulo 1 – Conceitos de Software Comparação entre os Sistemas Prof. Marcus Rodrigues Ítem SO Distribuído SO de Redes SO baseado em Middleware Multiproc. Multicomp. Grau de transparência Muito alto Alto Baixo Alto Mesmo SO em todos os nós Sim Sim Não Não Número de cópias do SO 1 N N N Base para comunicação Memória compart. Mensagem Arquivo Modelo específico Gerenciamento de recursos Global, central Global, distribuído Por nó Por nó Escalabilidade Não Moderadamente Sim Variável Flexibilidade (“Openness”) Fechado Fechado Aberto Aberto Sistemas Distribuídos – Capítulo 1 – Conceitos de Software