Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Distribuídos Lista de revisão para a primeira prova Data da entrega: dia 08/04/2018, no moodle Valor: 2 pontos Pode ser feito em dupla Questões 1. Analise as afirmativas a seguir, marque V para as verdadeiras e F para as falsas: a. ( ) Sistemas distribuídos consistem em computadores autônomos que trabalham juntos para dar a aparência de um único sistema coerente. b. ( ) Ao projetar um SD, pode-se adotar como premissa que a latência da rede não é significativa. c. ( ) SDs facilitam a integração em um único sistema de diferentes aplicações que executam em computadores diferentes. d. ( ) Quando adequadamente projetados, SDs podem ser ampliados com facilidade em relação ao tamanho da rede subjacente. e. ( ) Muitas vezes, as vantagens obtidas com SDs vêm à custa de software mais complexo, degradação do desempenho, e também, frequentemente, de menor segurança. f. ( ) Devido à robustez inerente aos sistemas distribuídos, podemos admitir que a rede é confiável, estática, segura e homogênea. g. ( ) SDs costumam ter como meta ocultar grande parte das complexidades relacionadas à distribuição de processos, dados e controle. h. ( ) Na prática, transparência em SDs pode nunca ser totalmente alcançada. i. ( ) Transparência em SDs é conseguida à custa do desempenho. j. ( ) O fato de ser necessário estabelecer compromissos de modo a obter várias formas de transparência de distribuição é inerente ao projeto de SDs. 2. Defina com suas próprias palavras o que é um Sistema Distribuído. Cite alguns exemplos. 3. Defina com suas próprias palavras o que é um middleware. Explique o papel e importância de middlewares em sistemas distribuídos. 4. Explique o que quer dizer transparência de distribuição. Dê exemplos de diferentes tipos de transparência de distribuição. 5. Explique por que às vezes é tão difícil ocultar a ocorrência e a recuperação de falhas em um sistema distribuído. 6. Por que nem sempre é uma boa ideia visar à implementação do mais alto grau de transparência possível? 7. Descreva com suas próprias palavras o que quer dizer sistema escalável. 8. Explique as diferentes técnicas que podem ser utilizadas para se alcançar escalabilidade em Sistemas Distribuídos. 9. Dissemos que, quando uma transação é abortada, o mundo é restaurado a seu estado anterior, como se a transação nunca tivesse acontecido. Mentimos. Dê um exemplo no qual restaurar o mundo é impossível. 10. Sobre arquiteturas de sistemas distribuídos, marque V para as verdadeiras e F para as falsas: a. ( ) Um estilo arquitetônico reflete o princípio básico que é seguido na organização da interação entre os componentes de software que compreendem um sistema distribuído. b. ( ) Podemos fazer uma distinção entre arquitetura de software e arquitetura de sistemas. A primeira considera onde os componentes que constituem um sistema distribuído estão colocados nas várias máquinas. A última se preocupa mais com a organização lógica do software. c. ( ) Entre os estilos arquitetônicos importantes estão “disposição em camadas”, “orientação a objetos”, “orientação a eventos” e “orientação a espaço de dados”. d. ( ) Arquiteturas cliente-servidor costumam apresentar alto grau de descentralização. e. ( ) Em arquiteturas descentralizadas, frequentemente vemos um papel igual desempenhado pelos processos que constituem um sistema distribuído, também conhecidos como sistemas peer-to-peer (P2P). f. ( ) Em sistemas P2P, os processos são organizados em uma rede de sobreposição, que é uma rede física na qual todo processo tem uma lista local de outros pares os quais ele pode se comunicar. g. ( ) A rede de sobreposição de sistemas P2P pode ser estruturada, caso em que são disponibilizados esquemas determinísticos para rotear mensagens entre processos. h. ( ) Em redes não estruturadas, a lista de pares é mais ou menos aleatória, o que implica que é preciso disponibilizar algoritmos de busca para localizar dados ou outros processos. i. ( ) Sistemas autogerenciadores podem ser organizados, de modo geral, como laços de realimentação de controle. 11. 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 este problema? 12. O que é uma arquitetura cliente-servidor de três divisões? 13. Em uma rede de sobreposição estruturada, mensagens são roteadas de acordo com a topologia de sobreposição. Cite uma importante desvantagem desta abordagem. 14. Considere uma cadeia de processos P1, P2, …, Pn implementando uma arquitetura cliente-servidor multi dividida. O processo Pi é cliente do processo Pi+1, e Pi retornará uma resposta a Pi-1 somente após receber uma resposta de Pi+1. Quais são os principais problemas dessa organização quando se examina o desempenho de requisição-resposta no processo P1? 15. Sobre processos em sistemas distribuídos, marque V para as verdadeiras e F para as falsas: a. ( ) Processos desempenham um papel fundamental em sistemas distribuídos porque formam uma base para comunicação entre máquinas diferentes. b. ( ) Threads em SDs são particularmente úteis para continuar usando a CPU quando é realizada uma operação bloqueadora de entrada/saída. (E/S). c. ( ) Threads possibilitam a construção de servidores de alta eficiência que executam vários threads em paralelo, entre os quais diversos podem estar bloqueados à espera da conclusão de E/S de disco ou de comunicação de rede. d. ( ) SDs que operam em redes de grandes distância, não precisam buscar mecanismos para ocultar a latência comunicação. e. ( ) O software cliente pode ocultar latência de comunicação com a utilização de threads. f. ( ) Em SDs, o software cliente visa a conseguir transparência de distribuição ocultando detalhes referentes à comunicação com servidores, à localização destes servidores no momento em questão e a respeito de se os servidores são ou não replicados. g. ( ) Em SDs, o software cliente não deve ter nenhum grau de responsabilidade quanto a ocultar falhas de comunicação. h. ( ) Servidores podem ser iterativos ou concorrentes, implementar um ou mais serviços e podem ser sem estado ou com estado. i. ( ) A organização interna de um cluster de servidores deve ser transparente para as aplicações cliente. j. ( ) A maioria dos clusters usa um único ponto de entrada que pode entregar mensagens a servidores no cluster. k. ( ) Duas razões importantes para não implementar migração de código são aumentar desempenho e flexibilidade. l. ( ) Quando a comunicação é cara, às vezes podemos reduzi-la despachando computações do servidor para o cliente e deixando o cliente fazer o máximo possível de processamento local. m. ( ) Migração de código não requer que levemos a heterogeneidade em conta. n. ( ) A utilização de máquinas virtuais não é uma boa solução para lidar com a heterogeneidade. o. ( ) Para suportar e possibilitar um melhor desempenho de clientes WEB multithreading, servidores WEB devem ser implementados para suportar múltiplas conexões de diferentes (ou dos mesmos) usuários. p. ( ) Cluster de Servidores Distribuídos pode ser definido como um conjunto de máquinas que possivelmente muda dinamicamente, com vários pontos de acesso também possivelmente variáveis, mas se apresenta ao mundo externo como um única e poderosa máquina. 16. Teria sentido limitar a quantidade de threads em um processo servidor? 17. Imagine um servidor Web que mantenha umatabela na qual endereços IP de clientes sejam mapeados para as páginas Web acessadas mais recentemente. Quando um cliente se conecta ao servidor, este consulta o cliente em sua tabela e, caso encontre, retorna a página registrada. Este servidor é com estado ou sem estado? 18. Considere um processo P que requer acesso ao arquivo F, disponível na máquina em que P está executando no momento em questão. Quando P passa para outra máquina, ele ainda requer acesso a F. Se a vinculação arquivo-máquina for fixa, como poderia ser implementada a referência a F no âmbito do sistema? 19. Sobre comunicação em sistemas distribuídos, marque V para as verdadeiras e F para as falsas: a. ( ) Em aplicações tradicionais de rede, a comunicação costuma ser baseada nas primitivas de troca de mensagens de baixo nível oferecidas pela camada de transporte. Uma questão importante em sistemas middleware é oferecer um nível mais alto de abstração que facilitará expressar comunicação entre processos mais do que o suporte oferecido pela interface com a camada de transporte. b. ( ) A essência de uma RPC é que um serviço é implementado por meio de um procedimento cujo corpo é executado em um servidor. O cliente recebe apenas a assinatura do procedimento, isto é, o nome do procedimento junto com seus parâmetros. c. ( ) Uma das abstrações mais amplamente utilizadas em SDs é a chamada de procedimento remoto (RPC). d. ( ) Em uma chamada RPC, a implementação do lado do cliente (apêndice), fica encarregada de empacotar os valores dos parâmetros em uma mensagem e enviá-la ao servidor. e. ( ) RPCs oferecem facilidades de comunicação assíncrona, pelas quais um cliente é bloqueado até que o servidor tenha enviado uma resposta. f. ( ) Em modelos orientados a mensagem, as questões giram em torno de se uma comunicação é ou não persistente e se uma comunicação é ou não síncrona. g. ( ) A essência da comunicação persistente é que uma mensagem apresentada para transmissão não é armazenada pelo sistema de comunicação pelo tempo que for necessário para entregá-la. h. ( ) Em uma comunicação persistente, tanto o remetente quanto o receptor precisam estar ligados e funcionando para que a transmissão da mensagem ocorra. i. ( ) Em uma comunicação transiente, nenhuma facilidade de armazenamento é oferecida. Deste modo, o receptor deve estar funcionando para aceitar a mensagem no momento do envio. j. ( ) Em comunicação síncrona, o remetente tem permissão de continuar imediatamente após a mensagem ter sido apresentada para transmissão, possivelmente antes mesmo de ser enviada. k. ( ) Modelos de middleware orientado a mensagem em geral oferecem comunicação assíncrona persistente e são usados onde RPCs não são adequados. l. ( ) Em comunicação por fluxo de dados, em geral, é difícil especificar e implementar quais são, exatamente, as relações temporais ou o que se espera do subsistema de comunicação subjacente em termos de qualidade de serviço. m. ( ) A ideia básica do multicasting é disseminar informações de um remetente para vários receptores. 20. Considere que um cliente chama uma RPC assíncrona para um servidor e, na sequência, espera até que o servidor retorne um resultado usando uma outra RPC assíncrona. Esta abordagem é o mesmo que deixar o cliente executar uma RPC normal? 21. Faz sentido implementar comunicação persistente assíncrona por meio de RPCs? 22. Explique por que a comunicação transiente síncrona tem problemas inerentes de escalabilidade e como podem ser resolvidos. 23. Apesar de o multicasting ser tecnicamente viável, há pouquíssimo suporte para disponibilizá-lo na internet. A resposta para este problema deve ser buscada em puros e simples modelos de negócios: na realidade, ninguém sabe como ganhar dinheiro com o multicasting. Você pode inventar um sistema?
Compartilhar