Você está na página 1de 4

Universidade Catlica de Pernambuco

Centro de Cincias e Tecnologia


Sistemas Distribudos
Prof. Almir Pires
almir.pires@gmail.com
Aluno: Bruno Xavier Peixoto da Rocha

Lista de Exerccios Captulo 1 Caracterizao dos Sistemas Distribudos


Questes do Coulouris
1. D cinco exemplos de recursos de hardware e cinco exemplos de recursos de software
que podem ser utilmente compartilhados. Em cada caso, d exemplos de como esse
compartilhamento ocorre na prtica em sistemas distribudos?
Hardware:
CPU: servidor de computao (executa aplicaes de processamento intenso para os
clientes), servidor de objeto remoto (executa mtodos em nome de clientes), programa do tipo
worm (aes capacidade da CPU de computador de mesa com o usurio local). A maioria dos
outros servidores, como servidores de arquivos, fazer alguma computao para os seus clientes,
da a sua cpu um recurso compartilhado.
memria: servidor cache (detm pginas web recentemente acessados em sua memria
RAM, para um acesso mais rpido por outros locais computadores)
disk: servidor de arquivos, servidor de disco virtual (ver Captulo 8), vdeo sob demanda
servidor (ver Captulo 15).

tela: sistemas de janelas de rede, tais como o X-11, permitir que os processos em
computadores remotos para atualizar o contedo das janelas.
impressora: impressoras em rede aceitar trabalhos de muitos computadores de
impresso. gerenci-los com um enfileiramento sistema.
network capacity: a transmisso de pacotes permite que muitos canais de comunicao
simultneos (fluxos de dados) para ser transmitida nos mesmos circuitos.
Software:
Pgina web: servidores web permitem que vrios clientes para compartilhar o contedo
da pgina s de leitura (normalmente armazenado em um arquivo, mas s vezes gerado on-thefly).
file: servidores de arquivos permitem que vrios clientes para compartilhar leitura e
gravao de arquivos. Conflitos de atualizaes pode resultar em resultados inconsistentes. Mais
til para arquivos que so alterados com pouca freqncia, como binrios de software.
objeto: possibilidades de objetos de software so ilimitadas. Por exemplo. whiteboard
compartilhado, dirio compartilhado, quarto reserva sistema, etc.
banco de dados: bases de dados destinam-se a gravar o estado definitivo de alguns
conjuntos de dados relacionados. Eles tm sido compartilhado desde computadores multiusurios apareceu. Elas incluem tcnicas para gerenciar atualizaes simultneas.
newsgroup content: O sistema netnews faz cpias somente para leitura das notcias
recentemente publicadas-disponvel para os clientes em toda a Internet. Uma cpia do contedo

newsgroup mantida em cada netnews servidor que uma rplica de aproximadamente aqueles
em outros servidores. Cada servidor faz com que seus dados disponveis para vrios clientes.
vdeo / udio stream: Servidores podem armazenar vdeos inteiros no disco e entreg-los
em velocidade de reproduo de mltiplos clientes simultaneamente.
exclusive lock: um objeto em nvel de sistema fornecido por um servidor trava,
permitindo que vrios clientes para coordenar a sua uso de um recurso (como impressora que
no inclui um esquema de filas).
2. Use a WWW (World Wide Web) como um exemplo para ilustrar os conceitos de
compartilhamento de recursos, cliente e servidor. (Recomendao: ler estudo de caso no
livro para responder!)
Pginas da Web so exemplos de recursos que so compartilhados. Estes recursos so
geridos pelos servidores Web.
Arquitetura cliente-servidor. O Web Browser um programa cliente (por exemplo,
Netscape) que executado no usurio de computador. O servidor da Web acessa arquivos locais
que contm as pginas da Web e em seguida, fornece-los para o cliente processos do navegador.
URL - Uniform Resource Locator
3. Um programa servidor escrito em uma linguagem (por exemplo, C++) prov a
implementao de um objeto OBJ que deve ser acessado por clientes escritos em outra
linguagem (Java, por exemplo). Os computadores onde executam os processos cliente e
servidor podem ser diferentes em relao ao hardware, mas ambos esto conectados via
Internet. Descreva os problemas que surgem com relao aos cinco aspectos de
heterogeneidade estudados e que precisam ser resolvidos para tornar possvel a invocao
remota do mtodo. (Coulouris Exerccio 1.7)
medida que os computadores esto ligados a uma internet, podemos supor que os
protocolos da Internet lidar com as diferenas de redes.
Mas os computadores podem ter um hardware diferente - portanto, temos de lidar com
as diferenas de representao de itens de dados de pedido e mensagens de resposta dos clientes
aos objetos. Um padro comum ser definido para cada tipo de item de dados que devem ser
transmitidos entre o objeto e seus clientes.
Os computadores podem executar sistemas operacionais diferentes, portanto, temos de
lidar com diferentes operaes para enviar e receber mensagens ou para expressar invocaes.
Assim, no / C ++ nvel Java uma operao comum faria ser usado que ser traduzido para a
operao especfica de acordo com o sistema operacional que ele executado.
Temos duas diferentes linguagens de programao C ++ e Java, eles usam
representaes diferentes para dados estruturas, tais como cordas, arrays, registros. Um padro
comum ser definido para cada tipo de estrutura de dados que devem ser transmitidos entre o
objeto e seus clientes e uma maneira de traduzir entre essa estrutura de dados e cada um dos
idiomas.
Podemos ter diferentes implementadores, por exemplo, um para C ++ e outra para Java.
Eles tero de acordar sobre as normas comuns mencionadas acima e para document-los.
4. Um sistema distribudo aberto permite que novos servios como aquele fornecido pelo
objeto OBJ da questo anterior sejam adicionados e acessados por uma grande variedade
de programas clientes. O que caracteriza um sistema aberto (pense no que mais o sistema
tem que ter alm das caractersticas necessrias para lidar com a heterogeneidade)?
o sistema distribudo usa um conjunto comum de protocolos de comunicao (provavelmente
protocolos de internet).

usa um padro definido para representar os itens de dados (para lidar com a heterogeneidade
de hardware).
Ele usa um padro comum para operaes de passagem de mensagens (ou para invocaes).
Ele usa um padro independente linguagem para representar estruturas de dados.
Mas para o sistema distribudo aberto as normas devem ter sido acordado e documentado antes
do BLOB objeto foi implementado. Os implementadores devem estar de acordo com essas
normas. Alm disso, a interface para o BLOB objeto deve ser publicado para que quando ele
adicionado ao sistema, actuais e novos clientes ser capaz de acess-lo. A publicao dos
padres permite que partes do sistema a ser implementado por diferentes fornecedores e
trabalhar em conjunto.
5. O servio INFO gerencia potencialmente uma grande quantidade de recursos. Cada
recurso pode ser acessado por usurios conectados via Internet atravs de uma chave (um
nome, por exemplo). Como esses nomes poderiam ser organizados de modo a gerar o
menor overhead possvel medida que a quantidade de recursos aumenta? Sugira como o
servio INFO pode ser implementado de forma a evitar gargalos de desempenho quando o
nmero de usurios se torna muito grande.
Algoritmos que usam estruturas hierrquicas dimensionar melhor do que aqueles que
usam estruturas lineares. Por conseguinte, a soluo deve sugerir um esquema de nomenclatura
hierrquica. por exemplo. que cada recurso tem um nome do formulrio 'ABC' etc em que o
tempo necessrio O (log n), onde n existem recursos do sistema.
Para permitir que um grande nmero de usurios, os recursos so divididos entre vrios
servidores, por exemplo, nomes comeando com A a um servidor, com B no servidor 2 e assim
por diante. Pode haver mais do que um nvel de particionamento como no DNS. Para evitar
gargalos de desempenho do algoritmo para procurar um nome deve ser descentralizadas. Esse ,
ao mesmo servidor no deve ser envolvido em olhar acima de todo nome. (Uma soluo
centralizada usaria uma nica servidor raiz que mantm um banco de dados local que mapeia
partes da informao para servidores especficos). Alguns replicao necessria para evitar tal
centralizao. Por exemplo: i) o banco de dados de localizao pode ser replicado em vrios
servidores raiz ou ii) o banco de dados de localizao pode ser replicado em todos os servidores.
Em ambos os casos, diferente os clientes devem acessar servidores diferentes (por exemplo, os
locais ou aleatoriamente).
6. Liste trs componentes de software que podem falhar quando um processo cliente
invoca um mtodo em um objeto servidor, dando um exemplo de falha em cada caso. D
exemplos de medidas que introduziriam algum grau de tolerncia a falhas no sistema.
Os trs principais componentes de software que podem falhar so:
o processo de cliente, por exemplo, ele pode falhar
o processo do servidor, por exemplo, o processo pode falhar
o software de comunicao, por exemplo, uma mensagem pode no chegar
As falhas so geralmente causados independentemente um do outro. Exemplos de falhas
dependentes:
se a perda de uma mensagem faz com que o processo do cliente ou servidor deixe de
funcionar. (A queda de um servidor causaria um cliente a perceber que uma mensagem de
resposta est faltando e pode indiretamente causar falha).
se os clientes quebrando servidores causar problemas.
Se a queda de um processo provoca uma falha no software de comunicao.

Ambos os processos devem ser capazes de tolerar as mensagens em falta. O cliente deve tolerar
uma mensagem de resposta faltando depois de ter enviado uma mensagem de solicitao de
chamada. Em vez de fazer o usurio esperar para sempre para a resposta, um cliente processo
poderia usar um tempo limite e, em seguida, informar ao usurio que no tem sido capaz de
entrar em contato com o servidor.
Um servidor simples, apenas espera por mensagens de pedido, executa invocaes e envia
respostas. Deveria ser absolutamente imune a mensagens perdidas. Mas, se um servidor
armazena informaes sobre seus clientes que eventualmente pode falhar se os clientes falhar
sem informar o servidor (de modo que ele pode remover informaes redundantes).
O software de comunicao deve ser concebido para tolerar falhas nos processos de
comunicao.
Por exemplo, a falha de um processo no deve causar problemas na comunicao entre os
sobreviventes processos.
7. Um processo servidor mantm um objeto compartilhado como o objeto OBJ da questo
3. Cite vantagens e desvantagens de permitir que requisies dos clientes sejam tratadas
de forma concorrente pelo servidor. No caso em que as requisies so tratadas
concorrentemente, d um exemplo de possvel interferncia que pode ocorrer entre os
diferentes clientes. Sugira como tal problema poderia ser evitado.
Para execues concorrentes - mais taxa de transferncia no servidor (particularmente se o
servidor tem que acessar um disco ou outro servio)
Contra - problemas de interferncia entre operaes simultneas
exemplo:
Um segmento do cliente de l valor da varivel X
Segmento do cliente do B l o valor da varivel X
Cliente Um fio de adiciona 1 para o seu valor e armazena o resultado em X
Cliente fio de B subtrai 1 do seu valor e armazena o resultado em X
Resultado: x: = X-1; imaginar que X o saldo de uma conta bancria, e os clientes A e
B so de crdito de execuo e operaes de dbito, e voc pode ver imediatamente que o
resultado incorreto.
Para superar uso interferncia alguma forma de controle de concorrncia. Por exemplo,
para uma utilizao de servidor Java operaes sincronizadas, como crdito e dbito.
8. Um servio implementado por vrios servidores. Explique por que recursos seriam
transferidos de um servidor para o outro.

A migrao de recursos (objetos de informao) realizado: para reduzir os


atrasos de comunicao (colocar objetos em um servidor que est na mesma rede local
que seus usurios mais freqentes); para equilibrar a carga de processamento e ou a
utilizao do armazenamento entre diferentes servidores.
Se todos os servidores de receber todos os pedidos, a carga de comunicao na
rede est muito aumentada e servidores devem fazer trabalho desnecessrio filtrando os
pedidos de objetos que eles no possuem.