Nazareno Andrade Universidade Federal de Campina Grande 02/2008

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos
Advertisements

Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Distribuídos
Sistemas de Informações Gerenciais
O Paradigma Cliente/Servidor Prof. Carlos A. Maziero, PhD PPGIA PUCPR.
Noções de Sistemas Operacionais
Redes de computadores I
Sistemas operacionais
Aula 21/09/2011 Courouris, Dollimore, cap 10
Sistemas Distribuídos:Definições e Caracteristicas
Sistemas Distribuídos
Modelos de Comunicação em Sistemas Distribuídos
Peer to Peer Referência:
Computação Distribuída
Augusto César Ferreira Gustavo Demmer Marcela Santana Márcia Back
Sistemas Distribuídos e Redes de Computadores
Capítulo 1 Introdução 1.1 O que é um sistema operacional
1 Sistemas Distribuídos - SDI Caracterização de Sistemas Distribuídos. Introdução. Exemplos de Sistemas Distribuídos. Desafios.
Simple Network Management Protocol (SNMP)
Questões Resolvidas - A.C.-10/08/05
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
SISTEMAS DISTRIBUÍDOS Princípios e Paradigmas 2ª Edição ANDREW S
Programação Distribuída Jorge Surian Programa da Disciplina.
Experiments with Strassen’s Algorithm: from sequential to parallel
3 – Projeto Lógico da Rede
Classes e objetos Modelagem
Capítulo 6 Organização.
Sistemas Distribuídos
Módulo Financeiro Centro de Custo.
Resultantes de Sistemas de Forças Cap. 4
Object Oriented Software Construction (MEYER, Bertrand)
Introdução ao Desenvolvimento Web
Universidade São Marcos Curso: Gestão de Negócios Internacionais
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
1 Modelos de Sistemas Distribuídos. Introdução - Dificuldades e ameaças para SD. Grande variação na utilização de SD )carga de trabalho e requerimentos.
Tópicos em redes e sistemas distribuídos
Sistemas Distribuídos
Arquitetura Cliente /Servidor
Cluster Beowulf.
É u m e l e m e n t o f u n d a m e n t a l
EXERCÍCIOS PARA GUARDA-REDES
SISTEMAS DISTRIBUÍDOS
Universidade Estadual de Santa Cruz - UESC
GERENCIAMENTO DE REDES UTILIZANDO O PROTOCOLO SNMP
Técnicas de Modelagem para Aplicações em Computação Gráfica
Gerenciamento de Redes Utilizando Agentes Móveis
Projeto de Banco de Dados
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 05.
Sistemas Distribuídos
Sistemas Distribuídos: Prólogo Nazareno Andrade Universidade Federal de Campina Grande 02/2008.
Comunicação entre processos: Mensagens Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.
Redes Neuronais/Neurais/ Conexionistas Introdução
01. Conceitos Básicos e definições
Sistemas Distribuídos Introdução. Conceito Coleção de múltiplos processos que executam sobre uma coleção de processadores autônomos interligados em uma.
Sistemas Distribuídos
1 © Copyright 2014 EMC Corporation. Todos os direitos reservados. Armazenamento Definido por software Convergência. Escalabilidade.Desempenho.Elasticidade.
SGBD Distribuído Lílian Simão Oliveira.
Sistemas Distribuídos
Abr-17 Projetar Processos Projetar distribuição.
Sistemas Distribuídos
Sistemas Distribuídos Nadilma Nunes Aula Inicial – Apresentação da disciplina.
Arquitetura de computadores
Sistemas Distribuídos Nadilma Nunes Aula Inicial – Apresentação da disciplina.
Sistemas Distribuídos
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Leandro Clementino Almeida.  Anos 50 - Sistemas Operacionais tipo Lote:  Aumentar a capacidade de processamento de programas  Usuário ia ao computador.
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
Alunas: Ana Paula/ Beatriz / Gracielle / Márci Alunas: Ana Paula/ Beatriz / Gracielle / Márci a Professor Antônio.
Sistemas Operacionais Distribuídos e/ou de Redes Engenharia da Computação – UCPEL Ritiele Moreira Aldeburg.
Transcrição da apresentação:

Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos Fundamentos 4,45 Nazareno Andrade Universidade Federal de Campina Grande 02/2008

Coordenando processos Construíndo sistemas Sistemas construídos Fundamentos Coordenando processos Construíndo sistemas Sistemas construídos 9-25

Coordenando processos Construíndo sistemas Sistemas construídos Fundamentos O que são sistemas distribuídos Para que distribuímos sistemas Referências de sistemas distribuídos Vocabulário sobre sistemas distribuídos Arquiteturas de sistemas distribuídos Modelos de sistemas distribuídos Coordenando processos Construíndo sistemas Sistemas construídos 9-25

Objetivos Idéia clara do que são sistemas distribuídos Propósito Vantagens & desvantagens Repertório de sistemas Visão de questões de projeto

Que sistemas distribuídos nós usamos? Quem já é experiente no assunto? Quais seriam exemplos de sistemas distribuídos em 2, em 10, em mil máquinas?

O que é um sistema distribuído? Quem já é experiente no assunto? Quais seriam exemplos de sistemas distribuídos em 2, em 10, em mil máquinas?

Em comum: Componentes independentes Canais de comunicação Imagem única Hardware independente + software unificando

“Conjunto de computadores independentes que se apresenta a seus usuários como um sistema único e coerente” -Tanenbaum “Sistema em que componentes de hardware e software localizados em diferentes computadores interconectados se comunicam e coordenam suas ações trocando mensagens” – CDK “Sistema onde você não consegue trabalhar por causa de uma falha em um computador que você nunca viu” – Lamport

Por que sistemas distribuídos? Compartilhamento Documentos, impressoras, telescópios, ... Escalabilidade Mais carga → Mais recursos Custo x benefício Um PC: dinheiro em dobro ≠ desempenho em dobro Robustez Redundância Limitações da Física Corpos se movem Corpos não se movem rápido o suficiente

E nós, projetistas? Concorrência Canais de comunicação Falhas parciais Descoberta de recursos Coordenação

Coordenando processos Construíndo sistemas Sistemas construídos Fundamentos O que são sistemas distribuídos Para que distribuímos sistemas Referências de sistemas distribuídos Vocabulário sobre sistemas distribuídos Arquiteturas de sistemas distribuídos Modelos de sistemas distribuídos Coordenando processos Construíndo sistemas Sistemas construídos 9-25

Sistemas de arquivos distribuídos: NFS Compartilhar arquivos, compartilhar um servidor

Web Compartilhamento de documentos (ao menos inicialmente) Google http://www.google.com LSD nazareno http://lsd.ufcg.edu.br/~nazareno/xpto.html xpto.html Compartilhamento de documentos (ao menos inicialmente) Navegadores e servidores HTTP

Sistemas N-camadas Apresentação Banco de dados Lógica Amazon, Google e quase todo e-commerce que você vir poraí... Tecnologia popular: LAMP - Linux, Apache, MySQL, Perl/PHP/Python

Computação paralela: clusters Alta performance, computação paralela Processamento numérico, processamento de dados, ... Tecnologias: PBS, Bewuolf, MapReduce, Hadoop

Computação paralela: grids/grades Domínios administrativos Alto desempenho, plataforma mais ampla, compartilhamento Tecnologias: Globus, Condor, OurGrid

Computação entre-pares, peer-to-peer Compartilhamento, “bordas” da rede Gnutella, Kazaa, BitTorrent, Skype, MSN, ...

Computação pervasiva / ubíqua Computadores estão em todo lugar, e conectados Celulares, carros, marcapassos, ...

Imagem única  transparência

Fornecendo uma imagem única Transparência O que é Acesso Escondemos se recursos são remotos Localização Escondemos onde eles estão Migração Escondemos se eles mudam de máquina Relocação Escondemos se eles se movem Replicação Escondemos redundância Concorrência Escondemos compartilhamento Falha Escondemos falhas Figuras

Embora isso não seja tão simples Heterogeneidade Plataforma, clientes, conexões Sistemas abertos Diversas implementações de clientes Segurança Nos componentes, nas comunicações, DoS Escalabilidade Evitar gargalos Tolerância a Falhas Componentes devem lidar com falhas dos demais Concorrência Concorrência é a norma

Alguns princípios de projeto de SD

Transparência Transparência para programa, usuário ou programador? Envolve ao menos: Nomes lógicos http://www.google.com Réplicas têm mesmo nome lógico Exclusão mútua distribuída Lembram de SO? Eficiência na comunicação Transparência é um contínuo, e não binário Transparência limitada pode ser necessária ou útil A Física impõe limites O usuário pode entender melhor o que está acontecendo

Desempenho Medido através de métricas: Vazão (throughput) Tempo de resposta (response time, makespan) Latência Utilização dos recursos (nem sempre são independentes...) O custo da comunicação em geral é importante

Desempenho e comunicação Em geral, queremos minimizar comunicação Overhead de comunicação >> outros overheads Canais são recurso mais escasso no sistema Comunicação == tamanho e freqüência de mensagens Granulosidade do paralelismo (parallelism granularity) Fine granularity – grãos pequenos  comunicação freqüente Coarse granularity – grãos grandes  comunicação infreqüente

Escalabilidade Existem SDs em 2, 10 e 10^6 computadores Google, Amazon EC2, Skype, ... Métodos para construir sistemas pequenos podem não valer para outras escalas Escalabilidade == É possível alterar a escala do sistema Quantidade de usuários ou recursos (custo x benefício) Escala geográfica Manter o sistema gerenciável a medida que cresce Em geral depende de não haver gargalos  descentralização

Escalabilidade: por que não é simples Escalabilidade  Descentralização Descentralização  Complexidade Princípios de algoritmos descentralizados escaláveis: Nenhum componente tem informação sobre todo o sistema Componentes tomam decisões baseadas em informações locais Falhas parciais não inviabilizam resultado Não há um relógio global único Há aproximações bem imperfeitas, como o NTP

Mais sobre escalabilidade e o mundo real Duas lições recentes 1. Quando a escala é grande o suficiente, qualquer coisa acontece Mensagens de controle corrompidas na Amazon e no PlanetLab 2. Ações coordenadas de componentes podem ser catastróficas Problema do Skype em 2008

Heterogeneidade Hardware independente  Configurações independentes Como sempre: níveis de indireção Neste caso, middleware

Confiabilidade Confiabilidade = disponibilidade + integridade + segurança Um sistema distribuído pode ser mais confiável que um monolítico Tolerância a falhas parciais Um sistema distribuído não é necessariamente mais confiável Falhas independentes? Segurança agora de diversos pontos Integridade mais complexa Como resolver tudo isso? Neste curso!

Recapitulando Transparência Desempenho Escalabilidade Heterogeneidade Confiabilidade Vamos usar bastante isso durante o curso...

Ciladas em projetos de SD

Não assuma que A rede é confiável A rede é segura A rede é homogênea A topologia da rede não muda A latência é zero A largura de banda é infinita O overhead de transporte é zero Há um só administrador

Fim da introdução

Recapitulando... O que são sistemas distribuídos Por que distribuir um sistema Visão geral dos tipos de sistemas distribuídos Objetivos comuns no projeto de sistemas distribuídos Desafios particulares nesse projeto O que não assumir Em resumo: o que sistemas distribuídos têm de particular

Mais sobre esse assunto End-to-end arguments in computer design Onde devem ficar as funcionalidades? A note on distributed computing Quão transparente deve ser a distribuição para o programador? Colocar mais aqui!

Cenas do próximo capítulo Quais as formas de dividir responsabilidades em um SD? Qual o espaço de projeto? Centralizado, descentralizado, peer-to-peer, híbridos... Como estudamos um sistema distribuído analiticamente? Modelos, dimensões úteis de SDs, resultados...