Lista de Exercícios – Capítulo 1 - Sistemas Distribuidos

4
8/20/2019 Lista de Exercícios – Capítulo 1 - Sistemas Distribuidos http://slidepdf.com/reader/full/lista-de-exercicios-capitulo-1-sistemas-distribuidos 1/4  Universidade Católica de Pernambuco Centro de Ciências e Tecnologia Sistemas Distribuídos Prof. Almir Pires – [email protected] Aluno: Bruno Xavier Peixoto da Rocha Lista de Exercícios – Capítulo 1 – Caracterização dos Sistemas Distribuídos Questões 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 prática em sistemas distribuídos? Hardware: CPU: servidor de computação (executa aplicações de processamento intenso para os clientes), servidor de objeto remoto (executa métodos em nome de clientes), programa do tipo worm (ações capacidade da CPU de computador de mesa com o usuário local). A maioria dos outros servidores, como servidores de arquivos, fazer alguma computação para os seus clientes, daí a sua cpu é um recurso compartilhado. memória: servidor cache (detém páginas web recentemente acessados em sua memória RAM, para um acesso mais rápido por outros locais computadores) disk: servidor de arquivos, servidor de disco virtual (ver Capítulo 8), vídeo sob demanda servidor (ver Capítulo 15). tela: sistemas de janelas de rede, tais como o X-11, permitir que os processos em computadores remotos para atualizar o conteúdo das janelas. impressora: impressoras em rede aceitar trabalhos de muitos computadores de impressão. gerenciá-los com um enfileiramento sistema. network capacity: a transmissão de pacotes permite que muitos canais de comunicação simultâneos (fluxos de dados) para ser transmitida nos mesmos circuitos. Software: Página web: servidores web permitem que vários clientes para compartilhar o conteúdo da página só de leitura (normalmente armazenado em um arquivo, mas às vezes gerado on-the- fly). file: servidores de arquivos permitem que vários clientes para compartilhar leitura e gravação de arquivos. Conflitos de atualizações pode resultar em resultados inconsistentes. Mais útil para arquivos que são alterados com pouca freqüência, como binários de software. objeto: possibilidades de objetos de software são ilimitadas. Por exemplo. whiteboard compartilhado, diário 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 têm sido compartilhado desde computadores multi- usuários apareceu. Elas incluem técnicas para gerenciar atualizações simultâneas. newsgroup content: O sistema netnews faz cópias somente para leitura das notícias recentemente publicadas-disponível para os clientes em toda a Internet. Uma cópia do conteúdo

Transcript of Lista de Exercícios – Capítulo 1 - Sistemas Distribuidos

Page 1: Lista de Exercícios – Capítulo 1 - Sistemas Distribuidos

8/20/2019 Lista de Exercícios – Capítulo 1 - Sistemas Distribuidos

http://slidepdf.com/reader/full/lista-de-exercicios-capitulo-1-sistemas-distribuidos 1/4

 Universidade Católica de PernambucoCentro de Ciências e TecnologiaSistemas DistribuídosProf. Almir Pires –

[email protected]: Bruno Xavier Peixoto da Rocha

Lista de Exercícios – Capítulo 1 – Caracterização dos Sistemas Distribuídos Questões do Coulouris

1. Dê cinco exemplos de recursos de hardware e cinco exemplos de recursos de softwareque podem ser utilmente compartilhados. Em cada caso, dê exemplos de como essecompartilhamento ocorre na prática em sistemas distribuídos?

Hardware:CPU: servidor de computação (executa aplicações de processamento intenso para os

clientes), servidor de objeto remoto (executa métodos em nome de clientes), programa do tipoworm (ações capacidade da CPU de computador de mesa com o usuário local). A maioria dosoutros servidores, como servidores de arquivos, fazer alguma computação para os seus clientes,daí a sua cpu é um recurso compartilhado.

memória: servidor cache (detém páginas web recentemente acessados em sua memóriaRAM, para um acesso mais rápido por outros locais computadores)

disk: servidor de arquivos, servidor de disco virtual (ver Capítulo 8), vídeo sob demandaservidor (ver Capítulo 15).

tela: sistemas de janelas de rede, tais como o X-11, permitir que os processos emcomputadores remotos para atualizar o conteúdo das janelas.

impressora: impressoras em rede aceitar trabalhos de muitos computadores deimpressão. gerenciá-los com um enfileiramento sistema.

network capacity: a transmissão de pacotes permite que muitos canais de comunicaçãosimultâneos (fluxos de dados) para ser transmitida nos mesmos circuitos.

Software:

Página web: servidores web permitem que vários clientes para compartilhar o conteúdoda página só de leitura (normalmente armazenado em um arquivo, mas às vezes gerado on-the-

fly).file: servidores de arquivos permitem que vários clientes para compartilhar leitura e

gravação de arquivos. Conflitos de atualizações pode resultar em resultados inconsistentes. Maisútil para arquivos que são alterados com pouca freqüência, como binários de software.

objeto: possibilidades de objetos de software são ilimitadas. Por exemplo. whiteboardcompartilhado, diário compartilhado, quarto reserva sistema, etc.

banco de dados: bases de dados destinam-se a gravar o estado definitivo de algunsconjuntos de dados relacionados. Eles têm sido compartilhado desde computadores multi-usuários apareceu. Elas incluem técnicas para gerenciar atualizações simultâneas.

newsgroup content: O sistema netnews faz cópias somente para leitura das notícias

recentemente publicadas-disponível para os clientes em toda a Internet. Uma cópia do conteúdo

Page 2: Lista de Exercícios – Capítulo 1 - Sistemas Distribuidos

8/20/2019 Lista de Exercícios – Capítulo 1 - Sistemas Distribuidos

http://slidepdf.com/reader/full/lista-de-exercicios-capitulo-1-sistemas-distribuidos 2/4

newsgroup é mantida em cada netnews servidor que é uma réplica de aproximadamente aquelesem outros servidores. Cada servidor faz com que seus dados disponíveis para vários clientes.

vídeo / áudio stream: Servidores podem armazenar vídeos inteiros no disco e entregá-losem velocidade de reprodução de múltiplos clientes simultaneamente.

exclusive lock: um objeto em nível de sistema fornecido por um servidor trava,permitindo que vários clientes para coordenar a sua uso de um recurso (como impressora quenão inclui um esquema de filas).

2. Use a WWW (World Wide Web) como um exemplo para ilustrar os conceitos decompartilhamento de recursos, cliente e servidor. (Recomendação: ler estudo de caso nolivro para responder!)

Páginas da Web são exemplos de recursos que são compartilhados. Estes recursos sãogeridos pelos servidores Web.

Arquitetura cliente-servidor. O Web Browser é um programa cliente (por exemplo,Netscape) que é executado no usuário de computador. O servidor da Web acessa arquivos locaisque contêm as páginas 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ê aimplementação de um objeto OBJ que deve ser acessado por clientes escritos em outralinguagem (Java, por exemplo). Os computadores onde executam os processos cliente eservidor podem ser diferentes em relação ao hardware, mas ambos estão conectados viaInternet. Descreva os problemas que surgem com relação aos cinco aspectos deheterogeneidade estudados e que precisam ser resolvidos para tornar possível a invocaçãoremota do método. (Coulouris – Exercício 1.7)

À medida que os computadores estão ligados a uma internet, podemos supor que osprotocolos da Internet lidar com as diferenças de redes.

Mas os computadores podem ter um hardware diferente - portanto, temos de lidar comas diferenças de representação de itens de dados de pedido e mensagens de resposta dos clientesaos objetos. Um padrão comum será definido para cada tipo de item de dados que devem sertransmitidos entre o objeto e seus clientes.

Os computadores podem executar sistemas operacionais diferentes, portanto, temos delidar com diferentes operações para enviar e receber mensagens ou para expressar invocações.Assim, no / C ++ nível Java uma operação comum faria ser usado que será traduzido para aoperação específica de acordo com o sistema operacional que ele é executado.

Temos duas diferentes linguagens de programação C ++ e Java, eles usamrepresentações diferentes para dados estruturas, tais como cordas, arrays, registros. Um padrão

comum será definido para cada tipo de estrutura de dados que devem ser transmitidos entre oobjeto e seus clientes e uma maneira de traduzir entre essa estrutura de dados e cada um dosidiomas.

Podemos ter diferentes implementadores, por exemplo, um para C ++ e outra para Java.Eles terão de acordar sobre as normas comuns mencionadas acima e para documentá-los.

4. Um sistema distribuído aberto permite que novos serviços como aquele fornecido peloobjeto OBJ da questão anterior sejam adicionados e acessados por uma grande variedadede programas clientes. O que caracteriza um sistema aberto (pense no que mais o sistematem que ter além das características necessárias para lidar com a heterogeneidade)?

• o sistema distribuído usa um conjunto comum de protocolos de comunicação (provavelmente

protocolos de internet).

Page 3: Lista de Exercícios – Capítulo 1 - Sistemas Distribuidos

8/20/2019 Lista de Exercícios – Capítulo 1 - Sistemas Distribuidos

http://slidepdf.com/reader/full/lista-de-exercicios-capitulo-1-sistemas-distribuidos 3/4

• usa um padrão definido para representar os itens de dados (para lidar com a heterogeneidadede hardware).

• Ele usa um padrão comum para operações de passagem de mensagens (ou para invocações).

• Ele usa um padrão independente linguagem para representar estruturas de dados.

Mas para o sistema distribuído aberto as normas devem ter sido acordado e documentado antesdo BLOB objeto foi implementado. Os implementadores devem estar de acordo com essasnormas. Além 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 publicação dospadrões permite que partes do sistema a ser implementado por diferentes fornecedores etrabalhar em conjunto.

5. O serviço INFO gerencia potencialmente uma grande quantidade de recursos. Cadarecurso pode ser acessado por usuários conectados via Internet através de uma chave (umnome, por exemplo). Como esses nomes poderiam ser organizados de modo a gerar omenor overhead possível à medida que a quantidade de recursos aumenta? Sugira como oserviço INFO pode ser implementado de forma a evitar gargalos de desempenho quando o

número de usuários se torna muito grande.

Algoritmos que usam estruturas hierárquicas dimensionar melhor do que aqueles queusam estruturas lineares. Por conseguinte, a solução deve sugerir um esquema de nomenclaturahierárquica. por exemplo. que cada recurso tem um nome do formulário 'ABC' etc em que otempo necessário é O (log n), onde n existem recursos do sistema.

Para permitir que um grande número de usuários, os recursos são divididos entre váriosservidores, por exemplo, nomes começando com A a um servidor, com B no servidor 2 e assimpor diante. Pode haver mais do que um nível de particionamento como no DNS. Para evitargargalos de desempenho do algoritmo para procurar um nome deve ser descentralizadas. Esse é,ao mesmo servidor não deve ser envolvido em olhar acima de todo nome. (Uma soluçãocentralizada usaria uma única servidor raiz que mantém um banco de dados local que mapeia

partes da informação para servidores específicos). Alguns replicação é necessária para evitar talcentralização. Por exemplo: i) o banco de dados de localização pode ser replicado em váriosservidores raiz ou ii) o banco de dados de localização pode ser replicado em todos os servidores.Em ambos os casos, diferente os clientes devem acessar servidores diferentes (por exemplo, oslocais ou aleatoriamente).

6. Liste três componentes de software que podem falhar quando um processo clienteinvoca um método em um objeto servidor, dando um exemplo de falha em cada caso. Dêexemplos de medidas que introduziriam algum grau de tolerância a falhas no sistema.

Os três principais componentes de software que podem falhar são:

• o processo de cliente, por exemplo, ele pode falhar

• o processo do servidor, por exemplo, o processo pode falhar

• o software de comunicação, por exemplo, uma mensagem pode não chegar

As falhas são geralmente causados independentemente um do outro. Exemplos de falhasdependentes:

• se a perda de uma mensagem faz com que o processo do cliente ou servidor deixe defuncionar. (A queda de um servidor causaria um cliente a perceber que uma mensagem deresposta 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 comunicação.

Page 4: Lista de Exercícios – Capítulo 1 - Sistemas Distribuidos

8/20/2019 Lista de Exercícios – Capítulo 1 - Sistemas Distribuidos

http://slidepdf.com/reader/full/lista-de-exercicios-capitulo-1-sistemas-distribuidos 4/4

Ambos os processos devem ser capazes de tolerar as mensagens em falta. O cliente deve toleraruma mensagem de resposta faltando depois de ter enviado uma mensagem de solicitação dechamada. Em vez de fazer o usuário esperar para sempre para a resposta, um cliente processopoderia usar um tempo limite e, em seguida, informar ao usuário que não tem sido capaz deentrar em contato com o servidor.

Um servidor simples, apenas espera por mensagens de pedido, executa invocações e enviarespostas. Deveria ser absolutamente imune a mensagens perdidas. Mas, se um servidorarmazena informações sobre seus clientes que eventualmente pode falhar se os clientes falharsem informar o servidor (de modo que ele pode remover informações redundantes).

O software de comunicação deve ser concebido para tolerar falhas nos processos decomunicação.

Por exemplo, a falha de um processo não deve causar problemas na comunicação entre ossobreviventes processos.

7. Um processo servidor mantém um objeto compartilhado como o objeto OBJ da questão3. Cite vantagens e desvantagens de permitir que requisições dos clientes sejam tratadas

de forma concorrente pelo servidor. No caso em que as requisições são tratadasconcorrentemente, dê um exemplo de possível “interferência” que pode ocorrer entre osdiferentes clientes. Sugira como tal problema poderia ser evitado.

Para execuções concorrentes - mais taxa de transferência no servidor (particularmente se oservidor tem que acessar um disco ou outro serviço)

Contra - problemas de interferência entre operações simultâneas

exemplo:

Um segmento do cliente de lê valor da variável X

Segmento do cliente do B lê o valor da variável 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 bancária, e os clientes A eB são de crédito de execução e operações de débito, e você pode ver imediatamente que oresultado é incorreto.

Para superar uso interferência alguma forma de controle de concorrência. Por exemplo,para uma utilização de servidor Java operações sincronizadas, como crédito e débito.

8. Um serviço é implementado por vários servidores. Explique por que recursos seriamtransferidos de um servidor para o outro.

A migração de recursos (objetos de informação) é realizado: para reduzir osatrasos de comunicação (colocar objetos em um servidor que está na mesma rede localque seus usuários mais freqüentes); para equilibrar a carga de processamento e ou autilização do armazenamento entre diferentes servidores.

Se todos os servidores de receber todos os pedidos, a carga de comunicação narede está muito aumentada e servidores devem fazer trabalho desnecessário filtrando ospedidos de objetos que eles não possuem.