Sistemas Distribu�dos by OtJb0T0V

VIEWS: 27 PAGES: 22

									                Sistemas Distribuídos
           Walfredo Cirne & Fubica Brasileiro

http://walfredo.dsc.ufcg.edu.br/cursos/2005/distsis20052


           Aula 2: Introdução a Sistemas Distribuídos


 As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o
                             consentimento dos mesmos.
Uma Visão Macro
O que é um sistema distribuído?

• Características de um sistema distribuído
  – Vários computadores
  – Interconectados por uma rede
  – Compartilhando um estado
    Exemplos de sistemas distribuídos

• A Internet é um sistema distribuído?
• A Web é um sistema distribuído?
• O DNS é um sistema distribuído?
• Um multiprocessador é um sistema
  distribuído?
• Um cluster é um sistema distribuído?
• Um grid é um sistema distribuído?
   O que é um sistema distribuído
            (revisitado)?
• Que características fazem com que a
  construção de um sistema distribuído seja
  mais difícil?
  – Componentes com diferentes modos de falha
  – Falhas parciais
  – Inexistência de relógio global exato
  – Grandes variações nos atrasos associados com
    a comunicação entre processos
          Quando distribuir?

• Por que complicar?
  – Às vezes o problema é distribuído
    • Ex. Groupware
  – Soluções distribuídas podem trazer benefícios
    inerentes à distribuição (mais sobre isso
    adiante)
    • Escala, incremento na confiança do funcionamento
      (dependability)
  – Soluções distribuídas são mais adaptáveis
    • Upgrade gradativo
        Sistemas centralizados
                  vs
         Sistemas distribuídos
• Características de sistemas centralizados
  – Acesso local, homogeneidade, facilidade de
    gerência, maior consistência, segurança contra
    intrusos
• Características de sistemas distribuídos
  – Acesso remoto, heterogeneidade,
    modularidade, escalabilidade,
    compartilhamento de recursos, degradação
    paulatina, mais sujeito a ataques, custo menor
   Que valores a distribuição pode
             adicionar?
• Confiabilidade
  – Como calcular a confiabilidade de um sistema?
  – Redundância é natural
• Crescimento modular
• Integração de serviços
• Custo
  – É importante considerar o aumento do custo
    com gerência!
      Arquiteturas de Sistemas
Distribuídos e um Pouco de História
• Quais os drivers da evolução das
  arquiteturas?
  – Avanços tecnológicos
  – Mudanças nos requisitos definidos pelos
    usuários
  – Avanços tecnológicos
  –…
 Antes dos sistemas distribuídos

• Acesso remoto
Primeiras formas de distribuição

• Distribuição de arquivos e memória (o
  advento das estações de trabalho)
 O mundo evolui de forma estranha

• De volta ao acesso remoto (o fator custo)
    Primeiros sistemas realmente
             distribuídos
• Arquitetura cliente-servidor (ainda o fator
  custo – a era do downsizing)
  Uma solução para a síndrome do
          cliente “gordo”
• Cliente-servidor em três camadas (o fator
  WWW)
Arquiteturas peer-to-peer
               Mobilidade
• Código e processadores móveis (java,
  agentes móveis, PDAs/laptops, telefonia
  sem fio, redes de sensores, redes ad-hoc,
  etc são os drivers)
 Comunicação sincrona
         vs
Comunicação assíncrona
Conceitos Fundamentais e
 Convenções de Notação
               Notações formais
• É normalmente conveniente tratar com processos ao invés
  de processadores
   – Um sistema distribuído é composto por N processos que executam
     em M processadores
   – Processadores são conectados por canais de comunicação
• A evolução do sistema é modelada por uma sequência de
  eventos eip
   – Um evento modifica o estado de p
• A história H é uma seqüência de tuplas contendo um
  evento eip e o estado de p após eip
• Uma execução (run) é um conjunto ordenado de eventos
  descrito por uma história
          Eventos e tempo
– Eventos podem ser locais ou podem ser trocas
  de mensagem
  • Eventos ordenados e concorrentes
– t(e) é o tempo real em que e ocorreu
  • Mas, o que é o tempo real?
– Timestamps
Estados globais
   Propriedades de um sistema

• Safety
  – Alguma coisa ruim não pode acontecer
• Liveliness
  – Alguma coisa boa vai acontecer
• Timeliness
  – Adicionam requisitos de tempo real às
    propriedades de liveliness

								
To top