Você está na página 1de 3

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.

Ambas têm relógios que devem pulsar 1. Se as atualizações UTC chegam uma vez por minuto. Dê um exemplo no qual. e a outra. Descreva uma forma de implementação alternativa que não utiliza um deamon. Qual a principal desvantagem desse esquema? 22. 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. Para conseguir multicast totalmente ordenado com marcas de tempo Lamport. em geral é uma boa idéia também levar em consideração medições anteriores. Considere uma camada de comunicação na qual mensagens são entregues somente na ordem em que as mensagens foram enviadas.20. Quando um nó sincroniza seu relógio com o de outro nó. isso pode funcionar? 21. afirma-se que. 34. Na abordagem centralizada da exclusão mútua – Figura 6. frequentemente é utilizado um deamon que monitora a fila de entrada. 32. No texto do livro do Tanenbaum. Muitos algoritmos distribuídos requerem a utilização de um processo coordenador. apenas uma primitiva assíncrona receive. Por quê? Dê um exemplo de uma situação onde as leituras anteriores devem ser levadas em conta. Contudo. Com a comunicação persistente. é estritamente necessário que cada mensagem seja reconhecida? 33. Descreva um modo de fazer isso automaticamente. esta porta poderia ser usada em referências a objetos no espaço de endereço do servidor. faça a tradução. uma vez que localizar o primeiro byte na primeira palavra é exatamente o problema. Cite possíveis fontes de atrasos que podem ser introduzidas entre a transmissão da hora em broadcast WWV e o ajuste. qual será a máxima defasagem dos relógios? 31. se necessário. Suponha que você só possa usar primitivas de comunicação transientes.000 vezes por milesegundo. 30. mas o outro pulsa somente 990 vezes. 27. entre elas. Seria útil fazer também distinção entre RPCs dinâmicas e estáticas? 23. Portanto. ao receber uma mensagem de um processo que está liberando o seu acesso exclusivo aos recursos . 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. Para criar tal buffer. Suponha que você dispõe apenas de primitivas de comunicação transiente síncrona. até mesmo essa ordenação é desnecessariamente restritiva. 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. Em vez de deixar que um servidor registre a si mesmo em um deamon como em DCE. O sistema nativo poderia ser indicado por um código no primeiro byte. Como você implementaria primitivas para comunicação transiente síncrona? 24. Um deles realmente pulsa a esta taxa. Até que ponto esses algoritmos são considerados distribuídos? 35. 26. 28. Considere o comportamento de duas máquinas em um sistema distribuído.14 -. para iniciar automaticamente um processo a fim de buscar mensagens de uma fila de entrada. Cite um argumento a favor e outro contra a especificação do tamanho. Como você implementaria primitivas para comunicação assíncrona? 25. talvez seja preciso especificar o seu tamanho. pelos processadores. poderíamos também preferir sempre designar a ele a mesma porta. de seus relógios internos em um sistema distribuído. Tabelas de roteamento no WebSphere da IBM e em muitos outros sistemas de enfileiramento de mensagens são configuradas manualmente.

38. a falta de resposta será interpretada como uma recusa de permissão. Cite outro algoritmo possível para o coordenador 36. O que acontecerá? . considere que o corrdenador caia. Sugerimos que todas as requisições sejam respondidas imediatamente para facilitar a detecção de processos que falharam. Suponha que dois processos detectem a morte do coordenador simultaneamente e ambos decidam convocar eleições que utilizem o algoritmo do Valentão. o coordenador normalmente concede permissão ao primeiro processo da fila. Poderia o algoritmo de Ricart e Agrawala resultar em deadlock? 39.que esta usando. Isso sempre derruba o sistema? Se não derrubar. Ainda com relação a Figura 6. Um sistema distribuído pode ter vários recursos independentes. Há alguma circunstância em que este método seja insuficiente? Discuta. Imagine que o processo 0 quer acessar o recurso A e o processo 1 quer acessar o recurso B.14. 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. 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.