Anda di halaman 1dari 58

Conceitos e Arquiteturas

Motivao

Computadores com grande


capacidade de processamento
(mainframes)
Grande porte
fsico
limitaes para
acomodao
Grande consumo
de energia
sala especial,
refrigerao
SO nico
dependncia do
fabricante

Terminais sem capacidade


de processamento (burros)

...passado
...passado

AArealidade
realidadedos
dosltimos
ltimos tempos...
tempos...
Computadores
diversos, todos com
capacidade de
processamento
Portes diversos
SOs diversos
Redes diversas
(Ethernet, ATM, com
fio, sem fio...)
Internet

Motivao

Motivao

Dividindo
Dividindopara
paraconquistar!!!
conquistar!!!
Programa modularizado
A
B
C
D
Execuo sequencial ou
concorrente (threads)

distribuir

Dividindo
Dividindopara
paraconquistar!!!
conquistar!!!
Programa modularizado
A
B
Distribuindo...

C
D

Motivao

Dividindo
Dividindopara
paraconquistar!!!
conquistar!!!

Programa
distribudo
Componentes
interligados
(comunicao)
Processamento
(computao)
distribudo ou
paralelo

Motivao

A
B

C
D

Pode ser mais confivel: toda funo pode ser


replicada
Quando um processador falha, outro pode continuar o
trabalho
Se um disco d crash, arquivos gravados tambm em
outros discos no so perdidos

Vrias computaes podem ser realizadas em


paralelo: um sistema distribudo pode realizar
mais na mesma quantidade de tempo
Pode-se considerar tolerncia a falha e possibilidade
de paralelismo como as propriedades fundamentais de
um sistema distribudo

Lamport: Um sistema distribudo aquele que


faz voc parar de ter o trabalho realizado quando
uma mquina da qual voc nunca ouviu falar
falha

Mais seriamente, Tanenbaum e van Renesse


Um sistema (operacional) distribudo aquele que aparece para
(1985):
os usurios como um sistema (operacional) centralizado
ordinrio, mas que executa em mltiplas CPUs independentes.
O conceito chave transparncia, ou seja, o uso de mltiplos
processadores deve ser invisvel (transparente) para o usurio.
Pode-se dizer que o sistema visto como um uniprocessador
virtual, e no como uma coleo de mquinas distintas.

Coleo de computadores
independentes que
aparecem para os usurios
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 aes por passagem
de mensagens.
(Coulouris et al)

Uma coleo de
elementos de
processamento
interconectados, tanto
logicamente como
fisicamente, para execuo
cooperativa de programas
de aplicao com o controle
geral dos recursos
centralizado. (M.
Vrios
componentes
Eckhouse)
Conectados via uma rede
Compartilhando recursos
Transparncia

Pessoas so distribudas, informao


distribuda
Desejo de comunicar e compartilhar informaes
e recursos

Relao desempenho/custo
Modularidade
Expansibilidade
Sistemas distribudos so capazes de crescimento
incremental

Disponibilidade
SDs tm capacidade de replicao e redundncia

Escalabilidade
Idealmente, sistemas distribudos no devem ter
qualquer componente centralizado (cuja
capacidade impe limites para o tamanho
mximo de um sistema), tal que a restrio ao
crescimento no deve existir

Confiabilidade
Disponibilidade apenas um aspecto de
confiabilidade
O sistema deve ser capaz de se recuperar de
falhas

Complexidade limita o que pode ser construdo


Schroeder chama os problemas causados pela
complexidade de problemas de sistema:
Interconexo: um grande nmero de problemas de
sistemas acontece quando componentes que antes
operavam independentemente so interconectados
Interferncia: dois componentes de um sistema, cada um
com comportamento razovel quando observados em
isolamento, podem exibir comportamento indesejvel
quando combinados
Propagao de efeito: efeito cascata de falhas pode
derrubar um sistema inteiro se no houver cuidados no
projeto

Efeitos de escala: um sistema que funciona bem


com 10 ns pode falhar se crescer para centenas
de ns
Falha parcial
Grande diferencial de sistemas distribudos em
relao a sistemas centralizados, tradicionais
Fonte considervel de complexidade no projeto de
aplicaes tolerantes a falhas

Sistemas distribudos so complexos porque o


que eles tm que fazer complexo
Exemplos:
1. Gerenciamento do escalonamento de trens em uma
rede em que passageiros tm que trocar de trens para
chegar em seus destinos o problema da sincronizao
2. Sistema de arquivos distribudos

preciso prever aspectos como autenticao, controle de


acesso, controle de concorrncia etc.
Complexidade ainda maior quando h os requisitos de alta
disponibilidade e tolerncia a falhas

Aspectos como mecanismos de localizao de arquivo,


coordenao de estado de servidor replicado, mecanismos de
recuperao de falhas parciais etc.

A soluo simples nem sempre pode ser usada


s vezes cara demais!
Exemplo:
Em uma rede de longa distncia, interconectar todos os
pontos (ns) seria a soluo mais simples, porm
extremamente cara!
A soluo mais barata fazer uma rede em que todos os
ns so alcanveis, porm no necessariamente de
forma direta
O custo dessa soluo mais baixo, porm a complexidade
bastante aumentada: so necessrios
algoritmos de roteamento,
buferizao para gerenciar o trfego multiplexado,
mecanismos de controle de fluxo para prevenir congestionamento
etc.

Distribuio

Comunicao
demandam

Complexidade

Heterogeneidade

Transparnci
a

A maioria dos (grandes) sistemas (reais) de hoje


precisam de comunicao
Os sistemas precisam ser modularizados para
melhor legibilidade e menor complexidade no
desenvolvimento
Do ponto de vista do usurio e do programador
de aplicao, preciso transparncia
Tolerncia a falha e possibilidade de
paralelismo so propriedades fundamentais de
um sistema distribudo
Boa relao desempenho/custo um desafio
alcanvel
Continua...

Caractersticas-chave:
Escalabilidade
Confiabilidade (disponibilidade, tolerncia a falhas,
segurana,...)

Falha parcial um grande diferencial de


sistemas distribudos em relao a sistemas
centralizados/tradicionais, mas tambm fonte
considervel de complexidade
Do ponto de vista de software, preciso agregar
outras funcionalidades s que os sistemas
operacionais convencionais oferecem para dar
suporte adequado a sistemas distribudos

Caractersticas, Objetivos
e
Modelos Arquiteturais

Conjunto de mquinas autnomas


Interconectadas por canais de comunicao
Comunicando-se por troca de mensagens
Independncia de falhas (falhas parciais)

Ausncia de relgio global


Ausncia de estado global
Estado compartilhado da aplicao
(atravs de comunicao)

Conexo de usurios e recursos


Desejo de comunicar e compartilhar informaes
e recursos

Transparncia
Escalabilidade (scalability)
Abertura (openness)

Eficincia desempenho produtivo


Convenincia utilidade e aplicabilidade
Robustez resistncia a falha
Disponibilidade: o sistema est no ar quando
preciso (instante de tempo)
Confiabilidade: o sistema no falha por um longo
perodo de tempo
E quando falha, a falha no provoca uma
catstrofe

Consistncia mesma viso de dados


Transparncia

Localizao: esconde onde o recurso est localizado


Acesso: operaes idnticas para acesso local e remoto
Migrao: esconde que um recurso pode se mover para
outra localizao
Relocao: esconde que um recurso pode ser movido para
outra localizao enquanto est em uso
Concorrncia: compartilhamento de recursos sem
interferncia entre processos concorrentes
Falha: esconde a falha e recuperao de um recurso
Replicao: esconde de usurios ou programadores de
aplicao a existncia de rplicas de recursos

Capacidade de um sistema poder ser estendido


(hw, sw) e de interoperar com outros sistemas
Resulta da especificao de interfaces, de tornar
as especificaes pblicas e de padroniz-las
Especificaes podem ser
padres estabelecidos por organizao de padronizao
padres estabelecidos pelo uso (de fato)

Conceito

Exemplo

Servios centralizados

Um nico servidor para todos os


usurios

Dados centralizados

Uma nica lista telefnica on-line

Algoritmos
centralizados

Roteamento baseado em informao


completa

Um sistema continuar eficaz mesmo


havendo um aumento significativo no
nmero de recursos e de usurios
Desafios:
Controlar o custo de recursos
Controlar a perda de desempenho
Prevenir que os recursos acabem (ex., endereos
IP)

Heterogeneidade

Segurana

Transparncia

Escalabilidade

Tolerncia a Falhas

Concorrncia

Abertura

Cliente-Servidor
Peer-to-Peer
Objetos Distribudos

Estrutura em termos de componentes


especificados separadamente
Inter-relaes de componentes
Diviso de responsabilidades entre
componentes

Clients

Clients
invocation

Server

invocation

Results

invocation

Results

Servidor nico

Service

Results

invocation

Results

Mltiplos Servidores

Vantagens de C/S
Melhor relao preo/desempenho

equipamentos mais baratos

Maior facilidade de expanso

expanso incremental dos servios

possvel adotar solues abertas

integrar solues de diferentes fabricantes

Menor impacto das falhas

falhas afetam somente parte do sistema

Desvantagens de C/S
Software mais complexo
preciso quebrar a aplicao em partes
Problemas de saturao da rede
Maior dependncia do meio de
comunicao
interaes devem ser bem projetadas
Aspectos de segurana mais crticos
dados confidenciais circulam na rede
necessidade de criptografia

Uma aplicao distribuda pode ser vista


como um conjunto de objetos
Objetos:

Consistem de dados + cdigo


Podem ser clientes, servidores ou ambos
Interface esconde detalhes de implementao
Modelar com objetos no implica no uso de
programao orientada a objetos

Observe a separao entre interface e


objeto

Tanenbaum and van Steen. Distributed Systems: Principles and Paradigms


Prentice Hall 2002

Interface
local

Objeto remoto

Variaes do Modelo C/S


Web
server

Client
Proxy
server

Web
server

Client

a) client request results in the downloading of applet code

Client
Applet code

Web
server

b) client interacts with the applet

Client

Applet

Web
server

Agentes
Mveis

Application

Application

Coordination
code

Coordination
code

Application
Coordination
code

Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3
Addison-Wesley Publishers 2000

Alguns tradeoffs devem ser considerados


para selecionar a arquitetura mais
apropriada, incluindo:
O crescimento potencial do nmero de usurios,
Custo e
Homogeneidade do ambiente computacional
futuro e do momento
Reatividade esperada
Taxa de rendimento (throughtput)
Balanceamento de carga
Qualidade de servio
Tolerncia a falhas
Segurana

Modelos fundamentais
Modelos de interao

C/S, variaes, peer-to-peer

Sincronizado, no sincronizado

Ordenao de eventos

Modelos de falha

Falhas por omisso

Falhas de temporizao

Falhas arbitrrias

Deteco, recuperao ou mascaramento de


falhas

Modelos de segurana

Proteo, anulao de ameaas

Criptografia, autenticao

Infra-estruturas para
Sistemas Distribudos

Sistemas Operacionais Distribudos


Sistemas Operacionais de Rede
Middleware

Hardware importante para sistemas


distribudos...
Software o que melhor diferencia sistemas
distribudos
Sistemas distribudos so como sistemas
operacionais tradicionais

Atuam como gerentes de recursos, permitindo que


mltiplos usurios ou aplicaes compartilhem CPUs,
memrias, perifricos, rede e dados
Tentam esconder a heterogeneidade e
complexidade do hardware (remoto, principalmente)
ao fornecer uma mquina virtual (software) onde
aplicaes podem ser executadas mais facilmente

Fortemente acoplados
Tentam manter viso nica e global dos recursos
gerenciados

Fracamente acoplados
Coleo de computadores, cada um executando
seu prprio sistema operacional
No entanto, estes sistemas operacionais
trabalham juntos para tornar os servios e
recursos de uns disponveis aos outros

Sistemas operacionais fortemente acoplados para


sistemas (computadores e programas)
distribudos, geralmente, so chamados de
sistemas operacionais distribudos (SODs)
viso nica e global dos recursos
Sistemas operacionais fracamente acoplados so
os sistemas operacionais de rede (SORs)
cada computador executando seu prprio SO, e
vice-versa, um SO completo para cada
computador
Para melhor suporte transparncia de
distribuio so necessrios melhoramentos ou
servios adicionais aos servios de SORs,
principalmente
Estes adicionamentos levaram ao chamado middleware

Sistema

Descrio

Principal objetivo

SOD

SO fortemente acoplado para


multi-processadores e
multicomputadores homogneos

Esconder e gerenciar
recursos de hardware

SOR

SO fracamente acoplado para


Oferecer servios
multicomputadores heterogneos locais para clientes
(LAN/WAN)
remotos

Middleware Camada adicional sobre um SOR

Prover transparncia
de distribuio

SODs

Aplicaes compartilham recursos e por isso


precisam ser protegidas umas das outras
Ex: sejam aplicaes A e B executando ao mesmo tempo,
A no pode alterar os dados de B simplesmente
acessando a parte da memria onde os dados esto
armazenados conceito de espao de endereamento

Aplicaes tm que usar apenas facilidades


oferecidas pelo SO
Ex: uma aplicao no pode copiar mensagens
diretamente para uma interface de rede. Em vez disso, o
SO oferece primitivas de comunicao

Sistema operacional multi-processador


Gerencia recursos de um multiprocessador

Sistema operacional multi-computador


Para multicomputadores homogneos

A funcionalidade de SODs essencialmente a


mesma de SOs tradicionais/convencionais,
exceto que SODs manipulam mltiplas CPUs

Objetivo: alto desempenho atravs de


mltiplos processadores o nmero de
CPUs deve ser transparente para a
aplicao
Suporte a mltiplos processadores com
acesso a uma memria compartilhada
Proteo contra acesso concorrente para
garantir consistncia, atravs de primitivas
de sincronizao
Semforo
Monitor

No h compartilhamento de memria, mas sim


comunicao comunicao confivel um
aspecto importante e complexo

Exemplos de SODs
Amoeba
http://www.cs.vu.nl/pub/amoeba/
Mach
Chorus

SOR

Em SORs, servios esto disponveis em


mquinas distintas

Login remoto (rlogin)


Cpia remota (rcp)
preciso saber onde (mquinas) os arquivos se
localizam...

Pouca transparncia!

Escalabilidade e abertura SORs


Transparncia e uso mais fcil SODs

Nomeao
Persistncia
Transaes
Segurana
....

Sistemas heterogneos
Pouca transparncia
Escalabilidade
Comunicao
Sistemas homogneos
Transparncia de distribuio
Alto desempenho
Memria compartilhada
Controle de concorrncia

Sistemas heterogneos
Transparncia de
distribuio e comunicao
Servios
Abertura

Anda mungkin juga menyukai