sistemas distribuídoscagf/sdgrad/aulas/introducao.pdfsistemas de grande porte (cont)" um...

32
Sistemas Distribuídos Sistemas Distribuídos Sistemas Distribuídos Sistemas Distribuídos

Upload: others

Post on 20-Nov-2020

2 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

Sistemas DistribuídosSistemas DistribuídosSistemas DistribuídosSistemas Distribuídos

Page 2: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Motivação

AplicaçõesAplicações

EngenhariaEngenharia

Motivam Possibilita

Page 3: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Motivação

! Aplicações cada vez mais complexas! Qual a técnica mais comum para redução de

complexidade?" Modularização

Dividir para conquistar!!!

Page 4: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Motivação

! Modularização aumenta a legibilidade de um programa

! Mas, um único programa com vários módulos (sistema monolítico) continua complexo para a plataforma de suporte, principalmente porque exige muitos recursos (de processamento, memória...)

Aplicação

Sistema Operacional

HardwarePlataforma

Page 5: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Sistemas Centralizados

" Grande porte físico →limitações para acomodação

" Grande consumo de energia →sala especial, refrigeração

" SO único →dependência do fabricante

Terminais sem capacidade de processamento (“burros”)Computadores com grande

capacidade de processamento (mainframes)

...passado...passado

Motivação

Page 6: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Sistemas em Rede

! Computadores diversos, todos com capacidade de processamento" Portes diversos" SOs diversos" Redes diversas

(Ethernet, ATM, com fio, sem fio...)

" Internet

A realidade dos últimos tempos...A realidade dos últimos tempos...

Motivação

Page 7: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Distribuição de sistemas

Dividindo para conquistar!!!Dividindo para conquistar!!!

A

B

C

D

Programa modularizado

Execução sequencial ou concorrente (threads)

distribuir

Motivação

Page 8: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Distribuição de sistemas

Dividindo para conquistar!!!Dividindo para conquistar!!!

A

B

C

D

Programa modularizado

Execução sequencial ou concorrente (threads)

A

B

C

D

A

B

C

D

A

B

C

D

A

B

C

D

A

B

C

D

A

C

D

B

D

C

DD D D

B B

A

B

C

D

Motivação

Distribuindo...

Page 9: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Distribuição de sistemas

Programa distribuído! Componentes

interligados! Processamento

(execução) distribuído ou paralelo

Dividindo para conquistar!!!Dividindo para conquistar!!!

A

C

D

B

Motivação

Page 10: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Sistema Distribuído

! O que é?

! Conceitos

! Desafios

Page 11: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

O que é um Sistema Distribuído?

! “Coleção de computadores independentes que aparecem para os usuários do sistema como um único computador.”(Tanenbaum & van Steen)

! “Um sistema em que componentes de hardware e software localizados em computadores em rede se comunicam e coordenam suas ações por passagem de mensagens.” (Coulouris et al)

! Vários componentes! Conectados via uma rede! Compartilhando recursos

! “Um Sistema distribuído é uma coleção de elementos de processamento interconectados, tanto logicamente como fisicamente, para execução cooperativa de programas de aplicação com o controle geral dos recursos centralizado.” (M. Eckhouse)

Page 12: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Aplicabilidade

! Sistemas de software de (grande) porte! Um sistema de sw de grande porte precisa de

" Grande capacidade de# Processamento# Memória# Armazenamento

" Um sistema centralizado precisa de# Máquina de grande porte (ex. mainframe)

→ alto custo de# aquisição,# manutenção e# expansão

Page 13: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Sistemas de Grande Porte (cont)

" Um sistema distribuído pode ter seus componentes# Armazenados,# Carregados e# Processados em

# Diversas máquinas de porte menor interligadas em rede →menor custo de

# Aquisição,# Manutenção e# Expansão

Page 14: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Conceitos

! Os diversos componentes de software de um sistema distribuído, tendo a independência / autonomia de serem processados em máquinas diversas, são chamados de

Processos

! Um dos módulos do sistema operacional, o escalonador, gerencia a fila de processos que usarão o processador como um

Recurso" Outros exemplos de recursos:

# Hw: memória, discos, impressoras# Sw: arquivos, bancos de dados, compiladores

Page 15: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Conceitos (cont)

! Threads: considerados processos leves" Permitem que atividades concorrentes internas a um

processo possam ser intercaladas pelo escalonador, podendo aumentar a eficiência do sistema

! Plataforma = hardware + sistema operacional" As soluções atuais de suporte visam tornar os sistemas

distribuídos independentes de plataformas

Page 16: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Conceitos (cont)

Applications, services

Computer and network hardware

Platform

Operating system

Middleware

Cou

lour

is, D

ollim

ore

and

Kin

dber

g D

istri

bute

d Sy

stem

s: C

once

pts a

nd D

esig

n E

dn. 3

©

Add

ison

-Wes

ley

Publ

ishe

rs 2

000

camada de software que esconde heterogeneidade e fornece um modelo de programação

Page 17: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Desafios

! Heterogeneidade" Software

# SO# Linguagens de programação

" Hardware" Rede

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

Page 18: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Sistemas Heterogêneos

! Obs.: SOs são otimizados para determinadas arquiteturas de hardware" Ex. 1: Windows, Linux para CISC/PCs" Ex. 2: Unix para RISC/WS (Workstations)Mas podem ser rodados/emulados em plataformas diversas; ex.: SAMBA

emula Windows em RISC/WS

WindowsCISC/PCEthernet

P1 P2 P3

UnixRISC/WS

ATM

P4 P5 P6

Eth ATM

Switch

Máquina A Máquina B

Aplicação

SO

HW

Rede

Camadas

Page 19: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Sistemas Heterogêneos (cont)

! Como rodar P4 no Windows se ele foi construído (desenvolvido e compilado) para Unix?" Simplesmente recompilar? E se o programa usou construções

específicas (system calls) do Unix?Pode ser necessário reprogramar para recompilar no Windows...

WindowsCISC/PCEthernet

P1 P2 P3

UnixRISC/WS

ATM

P4 P5 P6

Eth ATM

Máquina A Máquina BConsiderando apenas a camada SO:

SOHardware Hardware

Rede

Windows Unix

Page 20: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Sistemas Heterogêneos (cont)

! Para evitar reprogramação...! Usar camada intermediária padronizada que

! isole (torne independentes) os programas de aplicação dos diversos SOs de um sistema distribuído heterogêneo

Middleware

Transparência deheterogeneidade

Page 21: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Conceito/Desafio

! Transparência" Esconde do usuário e do programador de aplicação a

separação de componentes em um SD" O sistema é percebido como um todo, em vez de uma

coleção de componentes independentes

Page 22: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Outros Tipos de Transparência

! Localização: esconde onde o recurso está localizado! Acesso: operações idênticas para acesso local e remoto! Migração: esconde que um recurso pode se mover para outra

localização! Relocação: esconde que um recurso pode ser movido para

outra localização enquanto está em uso! Concorrência: compartilhamento de recursos sem

interferência entre processos concorrentes! Falha: esconde a falha e recuperação de um recurso! Replicação: esconde de usuários ou programadores de

aplicação a existência de réplicas de recursos

Page 23: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Desafio: Abertura

! Grau com o qual novos serviços compartilhados podem ser adicionados e usados

! Requer publicação de interfaces para acesso a recursos compartilhados

! Requer mecanismo de comunicação uniforme! Conformidade de cada componente com o padrão

publicado deve ser testada e verificada

Page 24: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Desafio: Segurança

! Segurança tem três componentes:" Confidencialidade (proteção contra abertura para

indivíduos não autorizados)" Integridade (proteção contra corrupção)" Disponibilidade (proteção contra interferência nos meios

para acessar recursos)

! Dois difíceis desafios de segurança:" Ataques de Denial of Service (DOS)" Segurança de código móvel: pode acessar recursos locais?

Page 25: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Desafio: Escalabilidade

! Permanecer efetivo mesmo quando há um aumento significativo no número de recursos e usuários:" Controlar o custo dos recursos" Controlar a perda de desempenho" Prevenir que os recursos de software acabem (ex.,

endereços IP)" Evitar gargalos de desempenho

Page 26: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Desafio: Tratamento de Falhas

! Falha parcial" Detecção (crash de máquina ou atraso de rede?)" Mascaramento (retransmissão, replicação)" Cliente desiste após número pré-determinado de

tentativas, timeout etc" Recuperação (checkpoint e rollback recovery)" Redundância

Page 27: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Desafio: Concorrência

! É um problema quando dois ou mais usuários acessam o mesmo recurso ao mesmo tempo" Threads" Mecanismos de exclusão mútua (ex. semáforos)

Page 28: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Sistemas Distribuídos

! Por que ter?

! Para que?

! Como funcionam?

Page 29: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Por que ?

! Aproveitar recursos de software e hardware distribuídos

Page 30: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Para que ?

! Escalabilidade: atendimento à demanda ! Desempenho: múltiplos processadores! Segurança! Disponibilidade: replicação; tolerância a

falha

Tane

nbau

man

d va

n St

een.

Dis

tribu

ted

Syst

ems:

Prin

cipl

es a

nd P

arad

igm

Pre

ntic

e H

all

2002

ExemplosARPAnet: Hardware, software e

pessoas distribuídosServiço Web moderno:

Page 31: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Como funcionam?

! Suporte de comunicação" Redes velozes e confiáveis

! Suporte de software" Sistemas operacionais de rede" Sistemas operacionais distribuídos" Middleware

Infra de comunicação

Infra de software

Page 32: Sistemas Distribuídoscagf/sdgrad/aulas/introducao.pdfSistemas de Grande Porte (cont)" Um sistema distribuído pode ter seus componentes # Armazenados, # Carregados e # Processados

© 2003 Carlos A. G. Ferraz

Desenvolvimento de TecnologiaO papel dos Sistemas Distribuídos hoje

AplicaçõesAplicações

EngenhariaEngenharia

Motivam Possibilita

AplicaçõesAplicações

MiddlewareMiddlewareMotivam Possibilitam

ServiçosServiços

RedeRede

Antes...

Hoje...