Buscar

Problemas propostos

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

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
Você viu 3, do total de 3 páginas

Prévia do material em texto

Problemas propostos (baseados no livro Sistemas Distribuídos – Princípios e Paradigmas) 
 
Introdução (Capítulos 1, 2 e 3): 
 
 
1. Uma definição alternativa para um sistema distribuído é que ele é um conjunto de 
computadores independentes que dá a impressão de ser um sistema único, ou seja, o 
fato de ter vários computadores, fica completamente oculto para os usuários. Dê um 
exemplo em que esta situação viria muito a calhar. 
2. Qual é o papel de um middleware em um sistema distribuído? 
3. Muitos sistemas de redes são organizados em termos de uma retaguarda e de uma 
vanguarda. Como as organizações se ajustam à visão coerente que é exigida para um 
sistema distribuído? 
4. Explique o que quer dizer transparência e dê exemplo de diferentes tipos de 
transparências. 
5. Por que as vezes é tão difícil ocultar a ocorrência e recuperação de falhas em um 
sistema distribuído? 
6. Por que nem sempre é uma boa idéia direcionar a implementação com o um alto grau 
de transparência possível? 
7. O que é um sistema distribuído aberto e quais benefícios a abertura proporciona? 
8. Discuta sobre a escalabilidade em sistemas distribuídos. 
9. O que significa organização virtual? Dê uma sugestão para a implementação dessa 
organização. 
10. Discuta sobre as propriedades associadas a execução de transações. 
11. Se um cliente e um servidor forem colocados longe um do outro, podemos ver a 
latência da rede dominar o desempenho global. Como podemos atacar este 
problema? 
12. Discuta sobre a arquitetura cliente-servidor. 
13. Em uma rede de sobreposição estruturada, mensagens são roteadas de acordo com a 
topologia de sobreposição. Cite uma possível desvantagem dessa abordagem. 
14. Faça uma análise comparativa envolvendo abordagens monothreads X multithreads. 
15. Teria sentido limitar o número de threads em um servidor? 
16. Faça o esboço 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. 
 
Comunicação (Capítulo 4): 
 
17. Em muitos protocolos de camadas, cada camada tem o seu próprio cabeçalho. 
Certamente seria mais eficiente ter um único cabeçalho à frente de cada mensagem 
que contivesse todos os controles do que ter todos esses cabeçalhos separados. Por 
que isto não é feito? 
18. Por que serviços de comunicação de nível de transporte frequentemente são 
inadequados para construir aplicações distribuídas? 
19. C tem uma construção denominada Union, na qual um campo de um registro, 
denominado Struct em C pode conter qualquer uma das diversas alternativas. Em 
tempo de execução, não há nenhum modo garantido para dizer qual delas está 
naquele campo. Essa característica de C tem quaisquer implicações para chamadas 
de procedimentos remotos? Explique sua resposta. 
20. Um modo para manipular conversão de parâmetros em sistemas RPC é fazer com 
que cada máquina envie parâmetros em sua representação nativa, e a outra, faça a 
tradução, se necessário. O sistema nativo poderia ser indicado por um código no 
primeiro byte. Contudo, uma vez que localizar o primeiro byte na primeira palavra é 
exatamente o problema, isso pode funcionar? 
21. Em vez de deixar que um servidor registre a si mesmo em um deamon como em DCE, 
poderíamos também preferir sempre designar a ele a mesma porta. Portanto, esta 
porta poderia ser usada em referências a objetos no espaço de endereço do servidor. 
Qual a principal desvantagem desse esquema? 
22. Seria útil fazer também distinção entre RPCs dinâmicas e estáticas? 
23. Suponha que você só possa usar primitivas de comunicação transientes, entre elas, 
apenas uma primitiva assíncrona receive. Como você implementaria primitivas para 
comunicação transiente síncrona? 
24. Suponha que você dispõe apenas de primitivas de comunicação transiente síncrona. 
Como você implementaria primitivas para comunicação assíncrona? 
25. No texto do livro do Tanenbaum, afirma-se que, para iniciar automaticamente um 
processo a fim de buscar mensagens de uma fila de entrada, frequentemente é 
utilizado um deamon que monitora a fila de entrada. Descreva uma forma de 
implementação alternativa que não utiliza um deamon. 
26. Tabelas de roteamento no WebSphere da IBM e em muitos outros sistemas de 
enfileiramento de mensagens são configuradas manualmente. Descreva um modo de 
fazer isso automaticamente. 
27. Com a comunicação persistente, um receptor geralmente tem o seu próprio buffer 
local no qual mensagens podem ficar armazenadas quando o receptor não estiver em 
execução. Para criar tal buffer, talvez seja preciso especificar o seu tamanho. Cite um 
argumento a favor e outro contra a especificação do tamanho. 
28. Como você poderia garantir um atraso máximo fim-a-fim quando um conjunto de 
computadores estiver organizado em um anel (lógico ou físico)? 
 
Sincronização 
 
29. Cite possíveis fontes de atrasos que podem ser introduzidas entre a transmissão da 
hora em broadcast WWV e o ajuste, pelos processadores, de seus relógios internos 
em um sistema distribuído. 
30. Considere o comportamento de duas máquinas em um sistema distribuído. Ambas 
têm relógios que devem pulsar 1.000 vezes por milesegundo. Um deles realmente 
pulsa a esta taxa, mas o outro pulsa somente 990 vezes. Se as atualizações UTC 
chegam uma vez por minuto, qual será a máxima defasagem dos relógios? 
31. Quando um nó sincroniza seu relógio com o de outro nó, em geral é uma boa idéia 
também levar em consideração medições anteriores. Por quê? Dê um exemplo de 
uma situação onde as leituras anteriores devem ser levadas em conta. 
32. Para conseguir multicast totalmente ordenado com marcas de tempo Lamport, é 
estritamente necessário que cada mensagem seja reconhecida? 
33. Considere uma camada de comunicação na qual mensagens são entregues somente 
na ordem em que as mensagens foram enviadas. Dê um exemplo no qual, até mesmo 
essa ordenação é desnecessariamente restritiva. 
34. Muitos algoritmos distribuídos requerem a utilização de um processo coordenador. Até 
que ponto esses algoritmos são considerados distribuídos? 
35. Na abordagem centralizada da exclusão mútua – Figura 6.14 -, ao receber uma 
mensagem de um processo que está liberando o seu acesso exclusivo aos recursos 
que esta usando, o coordenador normalmente concede permissão ao primeiro 
processo da fila. Cite outro algoritmo possível para o coordenador 
36. Ainda com relação a Figura 6.14, considere que o corrdenador caia. Isso sempre 
derruba o sistema? Se não derrubar, sob quais circunstâncias isso acontece? Há 
algum modo de evitar o problema e fazer com que o sistema seja capaz de tolerar 
quedas de cordenador? 
37. O algoritmo distribuído (Ricart e Agrawala) apresenta o seguinte problema: se um 
processo falhou e não responde a uma requisição de um outro processo para acessar 
um recurso, a falta de resposta será interpretada como uma recusa de permissão. 
Sugerimos que todas as requisições sejam respondidas imediatamente para facilitar a 
detecção de processos que falharam. Há alguma circunstância em que este método 
seja insuficiente? Discuta. 
38. Um sistema distribuído pode ter vários recursos independentes. Imagine que o 
processo 0 quer acessar o recurso A e o processo 1 quer acessar o recurso B. 
Poderia o algoritmo de Ricart e Agrawala resultar em deadlock? 
39. Suponha que dois processos detectem a morte do coordenador simultaneamente e 
ambos decidam convocar eleições que utilizem o algoritmo do Valentão. O que 
acontecerá?

Outros materiais