7
UNICAP CCT Ciência da Computação Sistemas Distribuídos Prof. Almir Pires Lista de Exercícios – Capítulo 2 Modelos de Sistemas 1. Descreva e ilustre a arquitetura clienteservidor de duas aplicações Internet (por exemplo, web e email). (Coulouris – Exercício 2.1) Web: Navegadores são clientes de servidores de nome de domínio (DNS) e servidores web (HTTP). Alguns são intranets configurados para interpor um servidor Proxy. Os servidores proxy podem cumprir vários fins quando estão situados no mesmo site como o cliente, eles reduzem os atrasos de rede e tráfego de rede. Quando eles estão no mesmo local que o servidor, eles formam um posto de segurança e podem reduzir a carga sobre o servidor. Email: O envio de mensagens: User Agent (programa de composição de email do usuário) é um cliente de um servidor SMTP local e passa cada mensagem de saída para o servidor SMTP para entrega. O servidor SMTP local utiliza tabelas de roteamento de email para determinar um percurso para cada mensagem e, em seguida, encaminha a mensagem para o próximo servidor SMTP escolhido da rota. Cada servidor de SMTP processa e encaminha cada mensagem que chega a menos que o nome de domínio da mensagem seja igual a da máquina local. Neste último caso, ela tenta entregar a mensagem para o destinatário, armazenandoo em um arquivo de caixa de email em um servidor de disco ou arquivo local. Leitura de mensagens: User Agent (programa de leitura de email do usuário) é um cliente do servidor de arquivos local ou um cliente de um servidor de entrega de email, como um servidor POP ou IMAP. No primeiro caso, o User Agent lê mensagens diretamente e cria o arquivo de caixa de email em que foram colocados durante a entrega da mensagem. Neste último caso, o

Lista Exercicios 2

Embed Size (px)

DESCRIPTION

Modelos de Sistemas

Citation preview

Page 1: Lista Exercicios 2

UNICAP CCT ­ Ciência da Computação Sistemas Distribuídos Prof. Almir Pires  

Lista de Exercícios – Capítulo 2  Modelos de Sistemas 

 1. Descreva e ilustre a arquitetura cliente­servidor de duas aplicações Internet                   

(por exemplo, web e email). (Coulouris – Exercício 2.1)  Web:  Navegadores são clientes de servidores de nome de domínio (DNS) e                     servidores web (HTTP). Alguns são intranets configurados para interpor um                   servidor Proxy. Os servidores proxy podem cumprir vários fins ­ quando estão                       situados no mesmo site como o cliente, eles reduzem os atrasos de rede e                           tráfego de rede. Quando eles estão no mesmo local que o servidor, eles                         formam um posto de segurança e podem reduzir a carga sobre o servidor. 

  Email:  O envio de mensagens: User Agent (programa de composição de email do                       usuário) é um cliente de um servidor SMTP local e passa cada mensagem de                           saída para o servidor SMTP para entrega. O servidor SMTP local utiliza                       tabelas de roteamento de email para determinar um percurso para cada                     mensagem e, em seguida, encaminha a mensagem para o próximo servidor                     SMTP escolhido da rota. Cada servidor de SMTP processa e encaminha                     cada mensagem que chega a menos que o nome de domínio da mensagem                         seja igual a da máquina local. Neste último caso, ela tenta entregar a                         mensagem para o destinatário, armazenando­o em um arquivo de caixa de                     email em um servidor de disco ou arquivo local. Leitura de mensagens: User Agent (programa de leitura de email do usuário)                       é um cliente do servidor de arquivos local ou um cliente de um servidor de                             entrega de email, como um servidor POP ou IMAP. No primeiro caso, o User                           Agent lê mensagens diretamente e cria o arquivo de caixa de email em que                           foram colocados durante a entrega da mensagem. Neste último caso, o                     

Page 2: Lista Exercicios 2

usuário solicita ao Agent informações sobre o conteúdo do arquivo de caixa                       de email do usuário a partir de um servidor POP ou IMAP e recebe                           mensagens a partir desses servidores para exibir ao usuário. POP e IMAP                       são protocolos especificamente concebidos para apoiar acesso ao email em                   áreas amplas e conexões de rede lentas, de modo que um usuário pode                         continuar a acessar sua caixa de  email casa enquanto viaja. 

 Netnews: Publicação de artigos de notícias: User Agent (programa de composição de                     notícias do usuário) é um cliente de um servidor local NNTP que passa cada                           artigo de saída para o servidor NNTP para entrega. Cada artigo é atribuído                         um único identificador. Cada Servidor NNTP mantém uma lista de outros                     servidores NNTP para o qual é um newsfeed ­ estão inscritos para receber                         artigos a partir dele. Ele periodicamente contacta cada um dos servidores                     registrados e oferece todos os artigos novos e solicita artigos que não possui                         (usando a identificação exclusiva dos artigos para determinar quais são).                   Para garantir a entrega de cada artigo para todos os destinos Netnews, deve                         haver um caminho de conexões newsfeed que alcança todos os servidores                     NNTP. Navegação / leitura de artigos: User Agent (programa de leitura de notícias                       do usuário) é um cliente de um servidor NNTP local. O agente do usuário                           solicita atualizações para todos os grupos de notícias que o usuário está                       vinculado e exibe.  

Page 3: Lista Exercicios 2

  

2. Para as aplicações discutidas no exercício anterior, mostre como os                   servidores poderiam cooperar para prover o serviço. (Coulouris – Exercício                   2.2)  Web: servidores Web cooperam com servidores proxy para minimizar o                   tráfego de rede e latência. Responsabilidade para consistência é feitapelos                   servidores proxy ­ que verifique as datas de modificação de páginas                     freqüentemente com o servidor web de origem.  Mail: servidores SMTP não mantem necessariamente tabelas de roteamento                 de distribuição de email para todos os destinos. Em vez disso, eles                       simplesmente encaminham mensagens dirigidas a destinos desconhecidos             para outro servidor que é provavelmente tem as tabelas.  Netnews: Todos os servidores NNTP cooperam da maneira descrita acima                   para fornecer o mecanismo de feed de notícias. 

  

3. Discuta os tópicos “particionamento” e/ou “replicação” (ou caching) de dados                   entre os servidores das aplicações descritas no exercício 1. (Coulouris –                     Exercício 2.3) 

 Web: Web page masters são mantidos em um sistema de arquivos em um                         único servidor. As informações sobre a web como um todo é, portanto,                       dividido entre muitos servidores web. 

Page 4: Lista Exercicios 2

A replicação não é uma parte dos protocolos de web, mas um site muito                           usado pode fornecer vários servidores com cópias idênticas do sistema de                     arquivos em questão, utilizando um dos meios conhecidos para replicar                   slowly­ alteração de dados. Solicitações HTTP podem ser multiplexados entre                   os servidores idênticos utilizando o (bastante básico) mecanismo de                 compartilhamento de carga DNS. Além disso, os servidores proxy web                   replicação apoio através do uso de réplicas em cache de páginas e                       navegadores usados recentemente suportar a replicação através da               manutenção de um cache local de páginas acedidas recentemente.  Mail: As mensagens são armazenadas somente em seus destinos. Ou seja, o                       serviço de email é baseado principalmente em particionamento, embora uma                   mensagem para vários destinatários é replicado em vários destinos.  Netnews: Cada grupo é replicada somente em locais que exigem isso. 

 4. Sugira algumas aplicações adequadas para o modelo de processos                 

peer­to­peer. (Coulouris – Exercício 2.5) Trabalho cooperativo (groupware) aplicativos que fornecem um processo de                 pares perto de cada usuário. Os aplicativos que precisam apresentar todos os usuários com estado                   idêntico ­ compartilhada whiteboard, visão compartilhada de uma discussão                 textual. Menos consistência: onde um grupo de usuários está trabalhando em um                     documento compartilhado, mas usuários diferentes podem acessar diferentes               partes ou talvez um usuário bloqueia parte do documento e aos outros são                         mostrados a nova versão quando ele estiver terminada. Alguns serviços são efetivamente grupos de processos pares para fornecer                   disponibilidade ou tolerância a falhas. Se eles particionarem dados, então                   eles não precisam para manter consistente em tudo.  

5. Liste os tipos de recursos locais que estão vulneráveis a um ataque de um                           programa não confiável que é carregado de um site remoto e roda em um                           computador local. (Coulouris – Exercício 2.6) 

 Objetos no sistema de arquivos, como arquivos e diretórios, podem sofrer                     leitua e escrita, e podem ser criados e deletados usando os direitos locais do                           usuário que executa o programa. A comunicação de rede: o programa pode tentar criar sockets, conecta­los,                     enviar mensagens, etc. Acesso a impressoras. 

Page 5: Lista Exercicios 2

Também é possível se passar pelo usuário de várias formas, como por                       exemplo, enviando e recebendo email. 

  

6. Dê exemplos de aplicações em que o uso de código móvel seja vantajoso.  (Coulouris – Exercício 2.7)  Fazendo a computação proximo ao usuário, como nos Applets. Casos em que os objetos sao enviados para um processo e o codigo é                           necessário para torna­lo usável. 

 7. Que fatores afetam o tempo de resposta de uma aplicação que acessa dados                         

compartilhados gerenciados por um servidor? Descreva medidas que podem                 ser úteis para resolver tais problemas. (Coulouris – Exercício 2.8) 

 Quando o cliente acessa um servidor, faz­se uma invocação de uma                     operação no servidor que esta rodando num computador remoto. As                   seguintes causas podem afetar o tempo de resposta: 

1. Servidor sobrecarregado 2. Latência na troca de request e reply (devido a camadas do sistema                       

operacional e do middleware no cliente e servidor) 3. Carga na rede 

O uso de cache ajuda com todos os problemas acima, Em particular cache                         no cliente reduz todos eles. 

 8. Qual a diferença entre bufferização e caching? (Coulouris – Exercício 2.9) 

 Buffer: uma técnica para armazenar dados transmitidos a partir de um                     processo de envio a um processo receptor em memória local ou                     armazenamento secundário até que o processo receptor esteja pronto para                   usar. Por exemplo, ler dados de um arquivo ou transmissão de mensagens                       através de uma rede, é melhor para lidar com isso em grandes blocos. Os                           blocos são mantidos em armazenamento de buffer no espaço de memória do                       processo receptor. O buffer é liberado quando os dados tiverem sido                     consumidos pelo processo.  Caching: uma técnica para otimizar o acesso a objetos de dados remotos,                       mantendo uma cópia deles na memória local ou em armazenamento                   secundário. Os acessos a partes do objecto remoto são traduzidos em                     acessos ao partes da cópia local correspondente. Ao contrário de buffering, a                       cópia local pode ser mantido enquanto houver locais memória disponível para                     armazená­la. Um algoritmo de gerenciamento de cache e uma estratégia de                     

Page 6: Lista Exercicios 2

liberação são necessários para gerenciar o uso da memória alocada para o                       cache.  

9. Dê exemplos de falhas de hardware e de software que podem/não podem ser                         toleradas pelo uso de redundância em um sistema distribuído.  (Coulouris – Exercício 2.10)  

● Falhas de Hardware: processadores, discos e conexões de rede                 podem usar redundância, por exemplo, rodar um processo em                 múltiplos computadores, escrever em dois discos, ter dois roteadores                 separados na rede disponível. 

● Galhas de software, crashes: Redundância nao é bom com erros,                   porque eles podem ser replicados. Processos replicados ajudam com                 crashes que podem ocorrer devidos a bugs em partes independentes                   do sistema. Mensagens retransmitidas ajudam com o problema de                 perda de mensagens. 

 10.Considere um servidor simples que atende a requisições de clientes sem                     

acessar outros servidores. Explique por que geralmente não é possível                   determinar um tempo limite de resposta para tal servidor. O que poderia ser                         feito para que um tempo de resposta fosse estabelecido? (Coulouris –                     Exercício 2.11) 

 A taxa de chegada de requests do cliente é imprevisível. 

Se o servidor usa threads para executar requests de forma                   concorrente, ele pode nao ser capaz de alocar tempo suficiente para                     um request em particular que tem um tempo limite. Se o servidor coloca o request na fila e vai tirando da fila um de cada                               vez, eles podem esperar na fila por uma quantidade de tempo                     ilimitada. 

Para executar requests dentro de um periodo de tempo limitado, limite o                       numero de clients para se adequar a sua capacidade. Para lidar com mais                         clients, usa um servidor com mais processadores. Depois disso, ou em vez                       disso, replique o serviço. A solução pode ser cara e, em alguns casos manter as replicas consistentes                         pode levar úteis ciclos de processamento, reduzindo os ciclos disponíveis                   para execução de requests. 

 11.Considere a existência de dois serviços de comunicação, A e B, em um                         

sistema distribuído assíncrono. No serviço A, mensagens podem ser                 perdidas, duplicadas ou atrasadas e checksums são utilizados apenas nos                   cabeçalhos das mensagens. No serviço B, mensagens podem ser perdidas,                   

Page 7: Lista Exercicios 2

atrasadas ou entregues muito rapidamente para o destinatário, mas aquelas                   que são entregues têm o seu conteúdo correto. Descreva as classes de                       falhas que estão presentes nos dois serviços. Algum dos serviços descritos                     pode ser considerado um serviço de comunicação confiável? (Coulouris –                   Exercício 2.14) 

 Serviço  A pode ter: 

➢ Falhas arbitrárias: ● checksum nao se aplicar ao corpo da mensagem, o corpo da                     

mensagem pode ser corrompido. ● mensagens duplicadas. 

➢ Falhas de omissão (mensagens perdidas) Uma vez que o sistema distribuído que é usado de forma assincrona,                       ele não pode sofrer de falhas de temporização. 

● Validade ­ é negado por mensagens perdidas ● Integridade ­ é negado por mensagens corrompidas ou               

duplicadas Serviço B pode ter: 

➢ Filhas de omissão (mensagens perdidas, mensagens dropadas) ➢ Uma vez que o sistema distribuído que é usado de forma assincrona,                       

ele não pode sofrer de falhas de temporização. ➢ Passa no teste de integridade, mas não no de validade, por conta                       

disso, nao pode ser considerado confiável.  

12.Considere um par de processos X e Y que usa o serviço de comunicação B                             da questão anterior para trocar informações entre si. Suponha que X é um                         cliente e Y é um servidor e que uma invocação consiste de uma requisição de                             X para Y, seguida do processamento da requisição por Y, seguida de uma                         mensagem de resposta de Y para X. Descreva as classes de falhas que uma                           invocação pode apresentar nesse modelo. (Coulouris – Exercício 2.15) 

 Uma invocação pode sofrer com as seguintes falhas: 

● Falhas de crash: X ou Y podem crashar, então, uma invocação pode                       sofrer com falhas de crash. 

● Falhas de omissão: se o serviço B sofrer com falhas de omissão, a                         mensagem de request ou reply pode se perder.