Buscar

Exercícios resolvidos | Sistemas distribuídos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Capítulo 3 (Processos) -Tanenbaum (pág 68) 
 
2) Teria sentido limitar o número de threads em um servidor? 
Sim, pois threads requerem memória para sua própria pilha. Assim, com muitas threads o 
consumo de memória pode impedir que o servidor trabalhe corretamente. Outra razão é que 
para um sistema operacional, threads independentes tendem a operar de forma caótica. Isso 
pode dificultar o funcionamento estável do sistema de memória virtual, resultando em falhas 
de paginação e erros de E/S. Desse modo, muitas threads, podem levar à degradação de 
desempenho em comparação ao caso do uso de única thread (single thread). 
 
4) Associar estaticamente somente um thread com um processo leve não é uma idéia 
assim tão boa. Por quê? 
Tal associação se traduz efetivamente a ter somente threads a nível de kernel, implicando que 
muito do ganho de performance que se tem ao ter threads ao nível do usuário é perdido. 
 
5) Ter só um processo leve por processo nem sempre é uma ideia assim tão boa. Por 
quê? 
Não é uma ideia tão boa pois nesse esquema, que efetivamente tem apenas threads de usuário, 
qualquer chamada de sistema de bloqueio irá bloquear todo o processo. 
 
11) Faça um desenho esquemático de um servidor multithread que suporta vários 
protocolos que usam sockets como sua interface de nível de transporte para o sistema 
operacional subjacente. 
 
Um projeto relativamente simples é ter um único segmento T à espera de mensagens de 
transporte de entrada (TPDUs). Se assumirmos o cabeçalho de cada TPDU contém um 
número que identifica o protocolo de nível superior, o piso pode levar a carga útil e passá-lo 
para o módulo para esse protocolo. Cada módulo tem um tal segmento separado espera para 
esta capacidade de carga, o qual trata de um pedido de entrada. 
Depois de processar o pedido, uma mensagem de resposta é passado para T, que, por sua vez, 
envolve-o em uma mensagem de nível de pedido, uma mensagem de resposta é passado para 
T, que, por sua vez, envolve-o em uma mensagem de nível de pedido, uma mensagem de 
resposta é passado para T, que, por sua vez, envolve-o em uma mensagem de nível de 
transporte e envia para a reconstrução da casa destino adequado. 
 
13) Um servidor que mantém a conexão TCP/IP com um cliente é com estado ou sem 
estado? 
Assumindo que o servidor não mantém outras informações sobre esse cliente, pode-se 
justificar que o servidor é sem estado. A questão é que não o servidor, mas a camada de 
transporte no servidor mantém o estado no cliente. O que os sistemas operacionais locais 
podem acompanhar é, em princípio, de nenhum interesse para o servidor. 
14) Imagine um servidor Web que mantenha uma tabela na qual endereços IP de 
clientes sejam mapeados para páginas Web acessadas mais recentemente. Quando um 
cliente se conecta ao servidor, este consulta o cliente em sua tabela e, caso o encontre, 
retorna a página registrada. Este servidor é com estado ou sem estado? 
Ele pode ser fortemente argumentado que este é um servidor sem estado. Neste exemplo, se a 
tabela é perdida por alguma razão, o cliente e o servidor ainda podem interagir corretamente 
como se nada tivesse acontecido. Em um projeto de estado, tal interação só seria possível 
após o servidor ter se recuperado de uma possível falha. 
 
Capítulo 2 
 
1) Se um cliente e um servidor forem colocados longe um do outro, podemos ver a 
latência de rede dominar o desempenho global. Como podemos atacar esse problema? 
Pode-se alterar a comunicação de síncrona para assíncrona. Desse modo o cliente deve ser 
reorganizado para que ele possa realizar outras tarefas enquanto ele estiver aguardando o 
servidor. 
 
2) O que é uma arquitetura cliente-servidor de três divisões? 
Uma arquitetura de cliente-servidor de três níveis é constituído por três camadas lógicas, em 
que cada camada é, em princípio, implementado em uma máquina separada. A camada mais 
elevado consiste de uma interface de utilizador cliente, a camada intermédia contém a 
aplicação real, e a camada mais baixa implementa os dados que estão a ser utilizados. 
 
3) Qual a diferença entre uma distribuição vertical uma distribuição horizontal? 
Distribuição vertical: é a organização da aplicação em multi-camadas. Divide componentes 
logicamente diferentes em máquinas fisicamente diferentes. Com isso, facilita o 
gerenciamento do sistema, pois cada máquina pode ser responsável por um grupo específico 
de funções. 
Distribuição horizontal: é a distribuição usada no P2P. É baseada na distribuição dos 
clientes e servidores. Um cliente ou servidor podem estar fisicamente divididos em partes 
lógicas equivalentes, cada uma operando sobre sua porção de dados, o que balanceia a carga. 
Os processos que constituem o sistemas são todos iguais, o que significa que que as funções 
necessárias devem estar em todos os processos que compõe o sistema. Maioria das interações 
entre os processos é simétrica, com isso, cada processo atua como “cliente” e “servidor” ao 
mesmo tempo. 
 
10) Nem todo nó em uma rede peer-to-peer deve se tornar um superpar. Cite requisitos 
razoáveis que um superpar deve cumprir. 
Os superpares só podem realizar comunicação com outros superpeers. Os superpares devem 
comunicar somente com o superpar dentro de uma hierarquia

Continue navegando