45
Faculdade Integrada do Ceará – FIC Graduação em Redes de Computadores Disciplina - Sistemas Distribuídos Prof. Andrey Halysson Lima Barbosa Aula 1 – Introdução a Sistemas Distribuídos

Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Faculdade Integrada do Ceará – FICGraduação em Redes de Computadores

Disciplina - Sistemas DistribuídosProf. Andrey Halysson Lima Barbosa

Aula 1 – Introdução a Sistemas Distribuídos

Page 2: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Sumário

• O Problema dos Dois Exércitos• O Problema dos Generais Bizantinos• Conceitos de Sistemas Operacionais• Histórico• Definição• Características• Para pensar

Page 3: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

O Problema dos Dois Exércitos• Vamos considerar um caso simples: processos são

perfeitos mas a comunicação pode perder mensagens;▫ Um exército vermelho de 5000 homens está acampado

em um vale.▫ Dois exércitos azuis de 3000 homens cada estão

acampados em colinas próximas;▫ Se o exército azul conseguir coordenar o ataque será

bem sucedido.▫ Caso contrário será destruído;▫ General Alexandre envia uma mensagem ao general

Bonaparte contendo “vamos atacar amanhã ao anoitecer”;

Page 4: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

O Problema dos Dois Exércitos

Page 5: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

O Problema dos Dois Exércitos▫ O mensageiro entrega a mensagem e recebe uma

outra contendo “Combinado”;▫ Alexandre recebe a confirmação e prepara suas

tropas;▫ No dia seguinte, Alexandre percebe que se

Bonaparte não tiver certeza que ele recebeu suas mensagem de confirmação poderá não atacar e decide enviar um mensageiro com uma mensagem de confirmação.

Page 6: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

O Problema dos Dois Exércitos• Novamente Bonaparte recebe a mensagem mas

agora fica preocupado que se Alexandre não receber uma confirmação poderá não atacar;

• Esta situação se repetirá continuamente. Mesmo que se estabeleça uma quantidade finita de passos, ainda assim o último que enviar uma confirmação não terá certeza se sua mensagem foi entregue;

• Conclusão: mesmo que processos não falhem, a concordância entre dois processos é impossível caso a comunicação não seja confiável.

Page 7: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

O Problema dos Generais Bizantinos• A origem desse problema remonta à época em que

Bizâncio, hoje conhecida como Istambul, na Turquia, era uma das principais cidades na rota do comércio do Oriente. Naquela época, o domínio da cidade garantia o controle da rota de comércio terrestre entre o Oriente e o Ocidente. Portanto, Bizâncio era uma cidade bastante disputada.

• Historiadores comentam que em uma dessas disputas, Bizâncio, sob controle do Exército Azul, estava cercada por duas divisões do Exército vermelho. A batalha pelo domínio da cidade avançou para uma situação de impasse onde o Exército Vermelho venceria somente se suas divisões atacassem exatamente ao mesmo tempo.

Page 8: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

O Problema dos Generais Bizantinos

Page 9: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

O Problema dos Generais Bizantinos

• O problema do General Vermelho consistia em enviar mensageiros para o Capitão Vermelho, acampado do outro lado do campo de batalha, avisando o momento exato do ataque. O problema do General Azul era impedir que as duas divisões do Exército Vermelho combinassem o momento do ataque.

Page 10: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

O Problema dos Generais Bizantinos

• Condições para o combate e vitória:▫ A comunicação entre os militares dos exércitos

ocorre somente via mensageiros.▫ O Exército Vermelho ganha se suas tropas

atacarem exatamente ao mesmo tempo.▫ O Exército Azul ganha caso contrário.

• Mensageiros de uma divisão vermelha devem atravessar as cercanias de Bizâncio, que ainda são dominadas pelo Exército Azul, para chegarem à outra divisão e vice-versa.

Page 11: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

O Problema dos Generais Bizantinos

• Problemas que podem ocorrer na transmissão das mensagens:▫ Interceptação▫ Atraso▫ Confirmação de recepção▫ Sincronismo▫ Lealdade

Page 12: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

O Problema dos Generais Bizantinos

• Um número ilimitado de mensagens é necessário para que as duas divisões do Exército Vermelho cheguem a um consenso sobre o momento do ataque ou o ataque nunca acontece.

• Em resumo, é impossível resolver este problema satisfatoriamente sob as condições impostas.

Page 13: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Conceito de Sistemas Operacionais

• Definição:▫ Camada de software colocada entre o hardware e

os programas que executam as tarefas para os usuários

Page 14: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Conceito de Sistemas Operacionais• Segundo Tanenbaum, o Sistema Operacional realiza,

basicamente, duas funções:▫ Estender a máquina e▫ Gerenciar recursos.

• Estas funções permitem que o computador seja utilizado com:▫ Eficiência Distribui os recursos do sistema entre os programas. Por

exemplo: tempo de processador, espaço na memória principal, impressora, espaço em disco, acesso a disco, etc.

Melhora a utilização dos recursos do sistema.▫ Conveniência Omite dos usuários os detalhes de acesso ao hardware. Diminui o tempo necessário para a construção de programas.

Page 15: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Conceito de Sistemas Operacionais

• Tipos de serviço oferecidos:▫ Sistema de arquivo▫ Gerência de memória▫ Gerência de processos▫ Gerência de E/S▫ Manutenção das informações do sistema▫ Segurança e detecção de erros

Page 16: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Conceito de Sistemas Operacionais

Page 17: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Conceito de Sistemas Operacionais

• Fortemente Acoplados:▫ Sistemas Timesharing Multiprocessadores▫ Compartilham uma única memória física e

dispositivos de E/S

Page 18: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Conceito de Sistemas Operacionais

• Fracamente Acoplados:▫ Existência de dois ou mais sistemas computacionais

conectados através de linhas de comunicação▫ Cada um trabalha de forma independente, possuindo

seu próprio S.O. e gerenciando seus próprios recursos

Page 19: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Histórico

• Anos 50 - Sistemas Operacionais tipo Lote▫ Aumentar a capacidade de processamento de

programas▫ Usuário ia ao computador▫ Processamento Sequêncial

Page 20: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Histórico

• Sistema de tipo Lote com E/S através de um sistema auxiliar▫ Dispositivo especial▫ Transporte manual de fitas

• “Distribuição local” do processamento• Sistema de computação centralizado

Page 21: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Histórico

• Mainframes interligados▫ Distribuição da Apresentação dos Dados

(terminais de E/S)▫ Distribuição do Processamento

• Comunicação de Dados e Teleprocessamento▫ Processamento Centralizado▫ Apresentação da Informação - Distribuída

Page 22: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Histórico

• Anos 80 - Surgimento dos Microcomputadores▫ Produtividade dos usuários e desenvolvedores▫ Conexão com os mainframes▫ Apresentação dos dados▫ Crescimento da distribuição do processamento

Page 23: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Histórico

• Anos 80 - Difusão da Tecnologia da Informação▫ Instrumento de transformação dos processos de

negócios das empresas▫ Aumento insignificante dos níveis de

produtividade com relação aos investimentos em TI

▫ Perda em níveis de produtividade quando profissionais trabalham individualmente

Page 24: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Histórico

• Anos 90 - Interligação dos Recursos▫ Surgimento das Redes Locais Essência da Computação Distribuída

▫ Evolução da tecnologia de redes Repetidor, ponte, roteador, gateway

Page 25: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Histórico

• Sistemas de Redes▫ Compartilhar periféricos, dados, programas▫ Acessar base de dados▫ Comunicação entre usuários▫ Computadores autônomos▫ Sistemas Operacionais: independente e de rede▫ Interação em forma de comunicação▫ Gerenciamento do sistema

Page 26: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Histórico

• Sistemas Distribuídos▫ Extensão dos sistemas de redes onde a interação

inclui comunicação e cooperação/colaboração.▫ Cooperação Todos por todos; Cada um com a sua tarefa.

▫ Colaboração Todos por um; Todos com a mesma finalidade.

Page 27: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Definição

• Um Sistema Distribuído é:▫ Uma coleção de computadores independentes que

aparecem para o usuário como um único sistema coerente (um único computador)- Tanenbaum

▫ É um sistema em que os componentes se localizam em uma rede de computadores e coordenam suas ações através de passagem de mensagens - Coulouris

Page 28: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Definição

• Um Sistema Distribuído é:▫ "Você sabe que tem um sistema distribuído

quando a falha de um computador do qual você nunca ouviu falar faz com que você pare completamente de trabalhar.“ - Leslie Lamport

Page 29: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Definição

• Exemplos de SD:▫ Uma rede de estações de trabalho em uma

universidade ou corporação▫ Uma rede de computadores em uma fábrica▫ Um grande banco com muitas agências, cada qual

com um computadores e caixas automáticas

Page 30: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Definição

• Exemplos de SD:▫ Sistema de reserva de passagens aéreas▫ Sistema de controle de estoque, vendas e entregas

numa cadeia de lojas▫ Serviços da Internet: Netnews, WWW▫ Sistemas de acesso a recursos de multimídia e de

conferência

Page 31: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Definição

• Vantagens de SD sobre SC:▫ Melhor relação custo/benefício▫ Capacidade de processamento além dos limites

práticos de SC ▫ Maior domínio de aplicações▫ Maior confiabilidade e disponibilidade▫ Crescimento gradativo da capacidade de

processamento

Page 32: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Definição

• Vantagens de SD sobre PC independentes:▫ Compartilhamento de dados comuns entre

usuários▫ Compartilhamento de recursos de hardware e

software▫ Comunicação entre pessoas▫ Flexibilidade na distribuição de tarefas de acordo

com as aplicações

Page 33: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Definição

• Desvantagens de SD:▫ Falta de software adequado▫ Falhas e saturação da rede de comunicação podem

eliminar as vantagens de SD▫ Segurança pode ser comprometida: fácil acesso a

dados e recursos reservados

Page 34: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Características

• Heterogeneidade• Abertura• Escalabilidade• Segurança• Tratamento de falhas• Concorrência• Transparência

Page 35: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Características

• Heterogeneidade▫ Aplica-se a: Redes Hardware de computador Sistemas Operacionais Linguagens de programação Implementações por diferentes programadores

▫ Soluções: Middleware Máquinas virtuais (ex: Applets Java)

Page 36: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Características

• Abertura▫ Determina se o sistema pode ser estendido ou

reimplementado de diversas maneiras.▫ Como alcançar: Publicação de interfaces Documentação e especificação Código aberto (Open-source)

▫ Exemplos: RFCs Repositório

Page 37: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Características

• Escabilidade▫ Suporta o aumento dos recursos e usuários

mantendo um desempenho satisfatório.▫ Desafios: Controlar o custo dos recursos físicos Controlar a perda de performance (quantidade) Prevenir esgotamento de recursos (ex: IP) Evitar gargalos de performance (centralização)

Page 38: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Características

• Segurança▫ Características Confidencialidade Integridade Disponibilidade

▫ Desafios: Negação de Serviço (DOS) Código Móvel

Page 39: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Características

• Tratamento de Falhas▫ Tipos de falhas: Física, software e humana

▫ Técnicas: Detecção de falhas Ocultação de falhas Tolerância a falhas (replicação) Recuperação de falhas

Page 40: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Características

• Concorrência▫ Permitir que recursos compartilhados sejam

utilizados por diversos processos▫ Questões: Sincronização Disponibilidade Segurança

Page 41: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Características

• Transparência▫ Transparência de acesso: recursos locais e

remotos são acessados pelas mesmas operações.▫ Transparência de localização: recursos são

acessados sem que sua localização seja determinada.

▫ Transparência de concorrência: processos executam concorrentemente, utilizando recursos compartilhados, sem interferirem na execução dos outros.

Page 42: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Características

• Transparência▫ Transparência de replicação: múltiplas cópias de

um recurso para aumentar a performance e disponibilidade dos seus serviços, sem o conhecimento das réplicas por usuários e programadores.

▫ Transparência a falhas: ocultar e tratar as falhas, hardware ou software, permitindo que as aplicações ou usuários completem suas tarefas.

Page 43: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Características

• Transparência▫ Transparência de mobilidade: movimento de

recursos ou clientes dentro do sistema não podem afetar a operação dos usuários ou programas.

▫ Transparência de performance: sistema deve permitir ser re-configurado para melhorar a performance conforme a variação de carga.

Page 44: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Características

• Transparência▫ Transparência de escala: as aplicações e o sistema

devem permitir serem expandidas, sem modificar a estrutura ou algoritmos.

▫ Transparência de persistência: oculta se um recurso (software) está na memória ou no disco.

Page 45: Faculdade Integrada do Ceará – FIC Graduação em Redes de ... · Camada de software colocada entre o hardware e os programas que executam as tarefas para os usuários. Conceito

Para pensar...• Questões:▫ Cite cinco tipos de recursos de hardware e cinco tipos

de recursos de dados ou software que podem ser compartilhados. Dê exemplos de como eles ocorrem em Sistemas Distribuídos.

▫ Discuta, utilizando suas palavras, as características desejáveis em um sistema distribuído.

▫ Liste os três principais componentes de software que podem falhar quando um processo cliente requisita um método em um servidor e dê um exemplo de uma falha em cada caso.