Вы находитесь на странице: 1из 31

Sistemas Distribudos

Introduo

Aplicaes em rede de
computadores

As redes de computadores atualmente esto em


todos os lugares.

Ex.: Internet, redes de telefones mveis, redes corporativas,


em fbricas, em campus, em casas etc.

Motivaes:

Muitas CPUs em um sistema operando em paralelo podem


ter mais poder de processamento que 1 mainframe por um
menor custo
Algumas aplicaes so distribudas por natureza

Trabalho cooperativo, jogos em rede, P2P

Maior confiabilidade
Crescimento incremental
2

Definio
Sistema distribudo um sistema no qual os
componentes de hardware e software,
localizados em computadores de uma rede,
comunicam e coordenam suas aes somente
pela troca de mensagens (Coulouris)

Conseqncias desta definio:

Concorrncia de componentes
Ausncia de relgio global
Falhas independentes
3

Definio (cont)
Computao distribuda ou sistema
distribudo o processo de agregar o
poder de vrias componentes
computacionais para colaborativamente
executar uma nica tarefa
computacional de modo coerente e
transparente de tal forma que elas
aparentam ser um sistema nico e
centralizado (Wikipedia)
4

Definio (cont)
Coleo de computadores independentes
que se apresentam ao usurio como
um nico sistema coerente (Tanenbaum)

Essa definio implica em:

Mquinas autnomas (camada de software unifica


e torna viso homognea)
Usurios pensam que esto lidando com um nico
sistema
5

Definio (cont)

Dois linhas de estudo

Sistema distribudo

Aplicao distribuda

Sistema operacional distribudo

Sistema operacional em uma rede

Classificao

Sistema Operacional Centralizado

Sistema Operacional de Rede

Sistema com um computador


Um usurio acessa recursos locais

Vrios sistemas distintos


Recursos compartilhados entre usurios
Usurios precisam saber onde esto os recursos

Sistema Operacional Distribudo

Sistemas distintos, mas viso unificada


Recursos esto acessveis de forma transparente
7

Sistema Operacional
Centralizado

aplicativo

aplicativo

Sistema Operacional

informaes

processamento

armazenamento

Sistema Operacional
Centralizado

Aplicado a sistemas convencionais

Principais caractersticas

Recursos centralizados
Arquiteturas mono ou multi-processadas
Sistemas multi-tarefas e multi-usurios

Compartilhamento de recursos atravs de interrupes


Todos os recursos so acessveis internamente
Comunicao entre processos via memria compartilhada
ou atravs de facilidades providas pelo ncleo do sistema

Objetivos

Tornar virtuais os recursos do hardware


Gerenciar uso dos recursos locais
Sincronizar atividades
9

Sistema Operacional de Rede

aplicativo

aplicativo

Sistema Operacional

Sistema Operacional
rede

10

Sistema Operacional de Rede

Coleo de computadores conectados atravs de uma rede

Implementao relativamente simples

SOs incorporam mdulos para acessar recursos remotos


Comunicao entre sistemas atravs de protocolos de transporte (Sockets
ou RPC)

Transferncias explcitas

Cada computador possui seu SO local


Cada mquina possui alto grau de autonomia

O usurio deve conhecer a localizao dos recursos


Os recursos pertencem a computadores especficos

Exemplos:

Compartilhamento de impressoras e arquivos


Web, E-mail
Servios de autenticao
11

Sistema Operacional
Distribudo

aplicativo

aplicativo

aplicativo

Sistema
Operacional

Sistema
Operacional

Sistema
Operacional

rede

processamento

armazenamento

informaes

12

Sistema Operacional
Distribudo

Objetivos:

Construo de um ambiente computacional virtual


Localizao dos recursos abstrada
Localizao do processamento abstrada
Mecanismos transparentes de distribuio,
replicao e tolerncia a faltas

O usurio v o sistema como um ambiente virtual, e no como


um conjunto de computadores conectados por uma rede

O SO distribudo deve:

Controlar a alocao de recursos para tornar seu uso eficiente


Prover um ambiente de computao virtual de alto nvel
Esconder a distribuio dos recursos e do processamento
13

Quadro comparativo
Tipo

Servios

Centralizado

Gerenciamento de processos,
memria, dispositivos, arquivos

Gerenciar recursos
Mquina estendida
Virtualizao

Acesso Remoto
Troca de Informaes

Compartilhar recursos
Interoperabilidade

Viso global dos recursos


(processadores, memria,
arquivos, usurios, tempo)
Uso do poder computacional

Unificar os computadores
em uma viso global
Diversas transparncias

de Rede

Distribudo

Objetivos

14

Tabela Comparativa
Centralizado
(mono ou multiprocessado)

de Rede

Distribudo

Se parece com um nico


processador virtual ?

Sim

No

Sim

Todas as mquinas executam o


mesmo sistema operacional ?

Sim

No

Sim

Memria
compartilhada

Arquivos
compartilhados
Protocolos de
transporte

Trocas de
mensagens

Sim

No

No

Quantas cpias do sistema


operacional existem ?

Como a comunicao ocorre ?

H uma nica fila de execuo ?

15

Vantagens dos SD

Economia

aproveitar recursos ociosos; mais barato ter vrios


processadores interconectados do que um supercomputador

Distribuio inerente

Tolerncia a falhas

em caso de falha de uma mquina, o sistema pode


sobreviver, mesmo com desempenho degradado

Crescimento incremental

algumas aplicaes so distribudas por natureza

o poder computacional pode ser aumentado atravs da


incluso de novos equipamentos.

Flexibilidade

Maior flexibilidade na alocao dos recursos, permitindo que


usurios compartilhem dados, processamento e dispositivos.
16

Desvantagens dos SD

Aplicaes mais complexas

Segurana

Pouco software de alto nvel disponvel


para sistemas distribudos.
Necessidade de construir mecanismos
para controle de acesso s informaes

Dependncia da rede

Falhas
Capacidade de trfego insuficiente
17

Exemplos

Internet

Comunicao: troca de pacotes


Servios: WWW, email, ftp etc
Provedor
Backbone

Computao mvel

Redes sem fio


Laptop, PDA
18

Conceitos de hardware

Sistemas distribudos consistem de


vrias CPUs

diferentes maneiras de se organizar o


hardware (interconexo e comunicao)

Classificao

Multiprocessador (memria compartilhada)


Multicomputador
19

Organizaes de
processadores e memria

20

10

Conexo de
multiprocessadores

Por Barramento

Uso de cache de memria para aumentar o


desempenho
Problema de coerncia de cache

Soluo: Cache write through (com snooping


cache)

21

Conexo de
multiprocessadores

Por matrizes de comutao (switches)

Matriz de comutao memrias x CPUs

Matrizes com N2 conexes


Uso elevado de chaves

Soluo: uso de estgios de matrizes 2x2


(rede mega)

n*log2n switches
Maior atraso
22

11

Conexo de
multiprocessadores

23

Conexo de
multiprocessadores

24

12

Conexo de
multicomputadores

Barramento

Rede Local

Switch

Grade (grid)

Nmero de hops = raiz quadrada do nmero de CPUs

Hipercubo

Nmero de Hops = Cresce de forma logaritma com o


nmero de CPUs
Sistemas comerciais disponveis com 16.384 CPUs
25

Conexo de
multicomputadores

26

13

Sistemas operacionais para o


hardware distribudo

Classificao

fortemente acoplado
fracamente acoplado

SOs

Sistemas operacionais de rede (fracamente


acoplados)
Sistemas distribudos reais

HW fracamente acoplado, SW fortemente acoplado


27

Questes de projeto

Transparncia
Heterogeneidade
Abertura
Flexibilidade
Confiabilidade
Desempenho
Escalabilidade
28

14

Transparncia

Objetivo

fornecer aos usurios uma imagem nica


e abstrata do sistema computacional

Nveis de transparncia

Nvel de usurio: O usurio tem a impresso


de estar usando um sistema centralizado.
Nvel de programador: O programador tem a
iluso de programar um sistema centralizado.

Sintaxe e semntica das chamadas deve ser semelhante.


29

Tipos de Transparncia

Acesso

Localizao

os recursos podem se mover no sistema sem alterar seus


nomes

Replicao

os usurios no precisam conhecer a localizao dos


recursos

Migrao

o acesso a recursos idntico

os usurios no sabem quantas cpias de um recurso


existem

Concorrncia

mltiplos usurios podem compartilhar um recurso


sem o perceber (e sem conflitos)
30

15

Tipos de Transparncia (cont)

Falha

Paralelismo

atividades podem ocorrer em paralelo sem que o


usurio tenha de explicit-las

Desempenho

esconde a ocorrncia de falhas

permite reconfigurao para aumentar


desempenho

Escala

permite expanso em escala sem alteraes no


sistema

31

Transparncia de acesso

Permite que objetos locais e remotos


possam ser acessados de maneira
idntica
Exemplo: login em uma mquina

Local: usurio e senha


Remoto: ssh ou telnet
32

16

Transparncia de localizao

Os usurios no devem estar conscientes da


localizao fsica dos recursos

Por exemplo: o nome do recurso no deve conter


o nome da mquina na qual o recurso reside

\\servidor1\shared\recibos.doc
http://www.puc-campinas.edu.br

Os sistemas transparentes quanto


localizao devem possuir um servio de
nomes, que mapeia o nome abstrato ao
endereo do recurso.
33

Transparncia de migrao

Os recursos podem trocar de lugar no sistema.


Um sistema transparente quanto migrao tambm
transparente quanto localizao, mas tambm deve
observar outras caractersticas de projeto.
O que pode migrar ?

Dados
Computao
Processos

Dependncia residual

quando um componente do sistema migra, podem haver


solicitaes em andamento no sistema para ele, que no
tomaram ainda conhecimento de sua nova localizao. Neste
caso, os ns podem guardar um histrico do movimento dos
recursos, para que o processo que possua sua localizao
antiga (nome antigo) possa encontr-lo.
34

17

Migrao de dados

Transferncia de arquivos:

Quando um usurio necessita acessar um arquivo


x, o arquivo x completo transferido para a sua
mquina local. Se houver alteraes, o arquivo
deve ser transferido de volta ao site origem

Transferncia de partes do arquivo: Somente


as partes do arquivo que sero acessadas so
realmente transferidas.
35

Migrao de computao

Quando se necessita de um grande


volume de dados que se encontra em
outra mquina, mais eficiente
transferir a computao do que
transferir os dados.
Migrao de computao pode ser feita
via RPC ou pelo envio de mensagens
(geralmente no modelo cliente-servidor)
36

18

Migrao de processos

A migrao de um processo, depois de


iniciada a sua execuo, pode ser justificada
pelas seguintes razes:

Balanceamento de carga
Queda de uma mquina
Preferncias de hardware
Preferncias de software
Proximidade dos recursos

Poucos sistemas implementam esse recurso

MOSIX

37

Transparncia de replicao

Por razes de desempenho, o sistema pode


manter cpias de recursos em vrios ns,
sem que o usurio ou programador estejam
conscientes deste fato
Deve ser garantido pelo sistema que as
mltiplas cpias do recurso sero sempre
vistas como uma nica cpia (coerncia entre
as cpias)
38

19

Transparncia de concorrncia

Os usurios no devem notar que existem


outros usurios no sistema. Se dois usurios
acessam simultaneamente um mesmo
recurso, o sistema deve garantir a coerncia
Em sistemas distribudos, devem ser
garantidas as mesmas condies de
concorrncia de um sistema centralizado
39

Transparncia de falha

Permite esconder as falhas de maneira que


os usurios e programadores de aplicaes
possam completar suas tarefas apesar das
falhas de componentes de hardware ou
software
Tarefas

Deteco
Reconfigurao
Recuperao

40

20

Transparncia de paralelismo

O prprio sistema operacional deve decidir


que recursos (ex. processadores) alocar a
uma aplicao distribuda de maneira que
critrios de otimizao sejam atendidos
(balanceamento de carga, tempo de resposta
etc).
O usurio no deve interferir nessa escolha.
O nmero de recursos alocados a uma
aplicao pode variar de uma execuo
para outra.
41

Transparncia de desempenho

Permite que os sistemas possam ser


reconfigurados para aumentar o
desempenho com a variao da carga
Ex.: uso de um algoritmo diferente para
realizao de uma determinada tarefa

42

21

Transparncia de escala

Permite que as aplicaes e os sistemas


pode ser expandidos sem mudanas na
estrutura do sistema ou algoritmo da
aplicao.
Ex.: incluso de novas mquinas na
rede
43

Heterogeneidade

Pode existir variedade e diferena em:

Redes de computadores
Hardware dos computadores
Sistemas operacionais
Linguagens de programao
Implementaes por diferentes desenvolvedores

Middleware: camada de software que fornece a


abstrao de programao e mascara a
heterogeneidade. Ex.: CORBA, Java RMI
Cdigo mvel: cdigo que pode ser enviado de um
computador para outro. Ex. applets Java

44

22

Abertura

O sistema pode ser estendido ou reimplementado de


vrias maneiras?
A abertura de um sistema distribudo determinada
primariamente pelo facilidade de incorporao e
disponibilizao de novos servios.
Esta caracterstica no pode ser obtida a menos que
sejam tornadas pblicas a especificao e
documentao das interfaces dos componentes
chave do sistema.
Sistemas construdos em conformidade com padres

Ex.: IETF (RFC), ANSI, ITU, IEEE,

45

Flexibilidade

A insero de novos mdulos no sistema deve ser


uma tarefa simples
Duas abordagens para a estruturao de um sistema
distribudo:

Um microkernel fornece somente servios bsicos

kernel monoltico (e.g. Unix distribudo)


micro-kernel (Mach, Chorus, Amoeba, etc)

Mecanismo de comunicao entre processos - IPC


Gerncia bsica de memria
Gerncia de processos de baixo nvel (trocas de contexto)
Entrada e sada de baixo nvel

Os demais servios (gerncia de arquivos,


escalonamento, etc) so providos por servios em
nvel de usurio

46

23

Confiabilidade

Em teoria

Na prtica

Se uma mquina falhar, outra pode assumir suas


tarefas
Confiabilidade do grupo aumenta
Alguns componentes ou servios so vitais para o
sistema
Caso parem, todo o sistema pode cair

Aspectos da confiabilidade

Disponibilidade
Segurana
Tolerncia a falhas

47

Disponibilidade

Frao de tempo em que o sistema est


disponvel para uso
Alcanada atravs de:

redundncia de componentes crticos


se um componente falhar, pode ser substitudo

Tcnicas geralmente utilizadas:

redundncia de hardware

Processadores, discos

redundncia de software

dois programas distintos efetuando a mesma funo


48

24

Segurana

Autenticidade

Autorizao

Os usurios comprovam suas identidades (senhas, chaves etc)


Estabelecimento de controles de acesso aos recursos (listas de
controle de acesso)

Privacidade

As informaes somente podem ser lidas por quem tiver direito


(mecanismos de criptografia)

Integridade

No-repudio

Os dados no podem ser destrudos ou corrompidos por terceiros


Todas as aes podem ser imputadas a seus autores (mecanismos
de auditoria)

Disponibilidade

Servios no podem ser desativados por ao de terceiros (DoS)


49

Tolerncia a falhas

O que fazer em caso de falha de um servidor?

Sistemas distribudos podem ser projetados para mascarar


falhas

Tcnicas para tratar falhas:

Deteco de falhas: checksum


Mascaramento de falhas: retransmisso de mensagens,
arquivos em duplicidade
Tolerncia a falhas: temporizador com notificao de usurio
Recuperao de falhas: transaes
Redundncia: roteadores, DNS, banco de dados etc

50

25

Faltas, erros e falhas

Faltas

Erro

Decorrncia da falta
Estado interno incorreto do software
Ex: queda de uma conexo TCP, varivel com valor errado

Falha

Situaes incorretas no estado interno de um sistema


Ex: um bit de memria invlido, um cabo de rede rompido

Decorrncia do erro
Servio oferecido ao usurio no cumpre sua especificao
Ex: banco de dados fora do ar, aplicao mostrando dados
incorretos

Portanto: FALTAS ERROS FALHAS

51

Desempenho

Mtricas para medir desempenho:

Tempo de resposta
Throughput (nmero de tarefas / tempo)
Utilizao do sistema
Uso da capacidade da rede

Em um sistema distribudo:

+ processadores, + memria, + capacidade de


armazenamento
Pode-se distribuir os processos entre os
processadores
+ velocidade final de computao ?
+ Custo de comunicao !
52

26

Custo de comunicao

Componentes do custo de comunicao:

Tempo de processamento do protocolo


Tempo de latncia do hardware e software de
rede
Tempo de transmisso da mensagem

Para obter um bom desempenho:

Reduzir a comunicao entre os processadores


Buscar manter um bom nvel de paralelismo
Encontrar um ponto de equilbrio entre ambos !
53

Granularidade das tarefas

Granularidade

Fina

pequenos conjuntos de instrues executados em paralelo


Muita comunicao desempenho ruim

Mdia

Tamanho do elemento bsico que ser distribudo

Funes executadas em paralelo (RPC)

Grossa

Processos executados em paralelo


Grande quantidade de cdigo para cada processo
Pouca comunicao timo desempenho
54

27

Escalabilidade

Noo intuitiva

Um sistema distribudo que opera bem com 10 mquinas


tambm deve funcionar bem com 10.000 mquinas
O desempenho do sistema no deve ser degradado
na medida que o nmero de ns cresce.

Inimigos da escalabilidade:

Componentes centralizados (por exemplo, um nico servidor


de e-mail para todos os usurios)
Tabelas centralizadas (por exemplo, uma nica relao online de telefones)
Algoritmos centralizados (por exemplo, o roteamento de
mensagens baseado em informaes completas de caminho)
55

Nveis de escalabilidade

Escalabilidade de Arquitetura

Escalabilidade do Sistema Operacional

Um sistema operacional escalvel tambm no deve limitar o


desempenho de uma aplicao.
Adicionar processadores no vai diminuir o tempo de resposta das
chamadas ao sistema, porque ns estamos introduzindo mais
recursos a gerenciar.

Linguagem de programao

Escalabilidade de uma arquitetura mede a parte de paralelismo


inerente aplicao que pode ser realizada sobre a arquitetura.
O tempo de execuo do algoritmo limitado por suas prprias
caractersticas e no por caractersticas da arquitetura.

Que permitam o uso de recursos no centralizados de forma


simples
Exemplo: tabelas e hashes distribudos

Aplicao

Algoritmos baseados em informaes descentralizadas

56

28

Melhorando a escalabilidade

Algoritmos descentralizados com as seguintes caractersticas

Nenhuma mquina possui informaes completas sobre o estado


do sistema
Mquinas tomam decises baseadas apenas nas informaes
disponveis localmente
Falha de uma das mquinas no impede o funcionamento do
algoritmo
No existe um relgio global implcito

Sistemas escalveis

Servidores distribudos: vrios servidores cooperam para a


execuo de um servio
Estruturas de dados distribudas, divididas em partes e
armazenadas em vrios locais do sistema
Algoritmos distribudos: cada servidor executa uma parte do
algoritmo

57

Bibliografia

Sistemas operacionais modernos


A.S. TANENBAUM
Prentice-Hall, 1995
Distributed Systems: concept and design
G. Coulouris, J. Dollimore e T. Kindberg
3.ed., Addison-Wesley, 2001
Sistemas Operacionais
H.M. Deitel, P.J. Deitel e D.R. Choffnes
3. Ed., Pearson Education, 2005
Sistemas Operacionais: Conceitos
A. Silberschatz e P. Galvin
5a. Ed., Prentice-Hall, 2000
58

29

Exerccios
1.
2.

3.

Cite 2 vantagens e 2 desvantagens dos sistemas distribudos em


relao aos centralizados.
Cite 5 tipos de recursos de hardware e 5 tipos de recursos de
software que podem ser compartilhados. D exemplos de seu
compartilhamento em sistemas distribudos.
Um programa servidor escrito em uma determinada linguagem
(Ex.: C++) prov a implementao de um objeto OBJ que deve
ser acessado por clientes escritos em linguagens diferentes (Ex:
Java). Os computadores clientes e servidor possuem diferentes
arquiteturas de Hardware, e esto todos conectados a Internet.
Descreva os problemas devido a cada um dos 5 aspectos de
heterogeneidade (slide 23) que precisam ser resolvidos para
permitir que um objeto cliente invoque um mtodo no objeto
servidor.

59

Exerccios
4.

5.
6.

Suponha que a operao do objeto OBJ dividida em 2


categorias: operaes pblicas disponveis a todos usurios e
protegidas disponveis apenas a determinados usurios.
Discuta os problemas envolvidos em garantir que somente os
usurios determinados possam usar as operaes protegidas.
Suponha que o acesso s operaes protegidas fornece
informaes que no podem ser reveladas a todos usurios,
que novos problemas surgem? Defina transparncia.
Explique os tipos de transparncia estudados.
sempre importante saber se as mensagens enviadas
chegaram ao seu destino de forma segura? Se sua resposta
for sim , explique o por qu. Se a resposta for no, d
exemplos apropriados.

60

30

Exerccios
Considere um sistema distribudo com duas
mquinas, A e B. Determine se a mquina A
pode distinguir as seguintes situaes:

7.

a.
b.
c.

A mquina B pra de funcionar


Ocorre um defeito na conexo entre A e B
A mquina B est sobre carregada e seu tempo
de resposta cem vezes maior que o normal

Quais as implicaes das suas respostas


para a recuperao de falhas em um
sistema distribudo?
61

31