Baixe o app para aproveitar ainda mais
Prévia do material em texto
ESPU Sistemas Distribuídos Profº.Renan Portela Jorge - 1 Responda as questões de 1 até 32 na própria folha, O aluno pode optar por não responder até 2 (duas questões do questionário. Observação a resposta deve estar na cor vermelha. 1. No estudo dos Sistemas Operacionais conhecemos o funcionamento de Programas, Processos e Threads.Estes são aspectos de fundamental importância para os sistemas distribuídos. Ao que corresponde um PROCESSO? 2. A Thread é unidade principal utilizada pelos gerenciadores de tarefas modernos. Assim, é fundamental que o desenvolvedor conheça o fluxo de vida de uma thread, para que poss manipulá-las com maior acurácia. Descreva a sequência correta dos estados possíveis de uma THREAD em UM estado EXECUTANDO. 3. Os cinco estados possíveis de uma Thread são Nova, Pronta, Executando, Suspensa, Terminada, e a transição entre estes estados pode ser realizada por métodos, como o método sleep(t), por exemplo. O que fazem os métodos abaixo? • wait(): • sleep(t): • notify(): • start(): • yield(): 4. Quando desenvolvemos um programa em Java estamos utilizando threads, mesmo que não seja de forma explicita. Absolutamente todas as aplicações em Java utilizam thread. Considerando isso, o que é o método main? E a classe Timer? 5. Uma forma de implementar uma thread é utilizar o conceito de herança para criar uma nova classe que herde os comportamentos definidos na classe Thread. Com base nessa afirmação, com criamos uma thread com a classe Thread? O que acontece com o método run? 6. Sistemas Distribuídos (SD) são classificados como uma coleção de computadores independentes que aparentam ao usuário ser um computador único, e a transição de um sistema centralizado para um sistema distribuído apresenta quatro principais desafios intrínsecos. Quais são eles? 7. A comunicação entre os nós de um SD é realizada através de mensagens. Para enviar uma mensagem utilizando os protocolos padrões de internet, precisamos basicamente de duas informações: endereço da máquina e a porta. No Java a classe InetAddress (java.net.InetAddress) abstrai endereços de rede [13]. Quais são os principais objetivos dessa classe? 8. Em sistemas distribuídos, cada nó é responsável por executar um ou mais processos que se comunicam para atingir um determinado objetivo. Assim, a comunicação entre processos (Interprocess Comunication – IPC) normalmente é composta entre um par de processos – remetente e destinatário. Explique como ocorre essa comunicação. ESPU Sistemas Distribuídos Profº.Renan Portela Jorge - 2 9. Para estabelecer o fluxo de comunicação entre os processos é utilizado um Socket de rede, sendo que atualmente praticamente todas as comunicações são baseadas em Sockets. O que são os sockets? Como são compostos? Qual é a relação entre sockets e mensagens? 10. O UDP (User Datagram Protocol) é um protocolo simples. Quando uma mensagem (datagrama) é enviada, o remetente não tem conhecimento se a mensagem realmente chegou no destinatário. Ou seja, não tem garantia de entrega de mensagem. Cite vantagens e desvantagens dos sockets UDP. 11. Para implementar uma solução baseada em sockets UDP, é preciso utilizar duas classes: DatagramPacket e DatagramSocket. Com funcionam essas classes? 12. Sistemas distribuídos baseados no modelo cliente/servidor são intuitivos e facilmente implementados por meio da utilização de sockets. O modelo cliente/servidor permite a disponibilização de sistemas pelas organizações, automatizando um modelo de negócio. Descreva esse modelo. 13. Em sistemas distribuídos construídos no modelo cliente/servidor o acoplamento pode se tornar um problema para o sistema em produção. Quando existe uma alteração no sistema acoplado, essa frequentemente afeta todos os outros sistemas. Apresente as características destes sistemas. 14. Podemos definir um serviço como sendo algo útil que um provedor faz para um consumidor. Essa definição, apesar de simples, traz alguns elementos importantes: provedor e consumidor, sendo que o provedor realiza uma ação útil para um consumidor. Relacione e descreva as três características dos serviços. 15. A Arquitetura Orientada a Serviços ou SOA - Service Oriented Architecture - é uma arquitetura de sistemas cujo princípio fundamental prega que as funcionalidades dos sistemas devem ser disponibilizadas na forma de serviços. O que é um serviço para a SOA? 16. Sistemas distribuídos baseados no modelo cliente/servidor são intuitivos e facilmente implementados por meio da utilização de sockets. O modelo cliente/servidor permite a disponibilização de sistemas pelas organizações, automatizando um modelo de negócio. Sobre este modelo de sistemas distribuídos podemos afirmar que: a) O modelo cliente/servidor tem como objetivo descentralizar os dados e recursos de processamento. b) Esse modelo pode ser composto de um ou mais computadores que atuam como servidores, os quais disponibilizam seus recursos para os demais. c) O desenvolvimento dessas duas partes (cliente e servidor) é feita de maneira acoplado, e esse acoplamento pode tornar-se um problema. ESPU Sistemas Distribuídos Profº.Renan Portela Jorge - 3 d) Um problema recorrente em sistemas cliente/servidor tradicionais está relacionado com a heterogeneidade. e) Todas as alternativas apresentadas estão corretas. 17. Em sistemas distribuídos construídos no modelo cliente/servidor o acoplamento pode se tornar um problema para o sistema em produção. Quando existe uma alteração no sistema acoplado, essa frequentemente afeta todos os outros sistemas. Analise as afirmativas a seguir classificando-as como (F) Falsas ou (V) Verdadeiras: ( ) Geralmente o desenvolvedor deve modificar o servidor para adequá-lo à uma mudança nos negócios, e o cliente também deve ser modificado para adequar-se a essa mudança. ( ) O alto acoplamento dos sistemas e a falta de interoperabilidade são motivos para um dos maiores problemas da TI: a falta de alinhamento dos negócios com a TI. ( ) A falta de alinhamento pode ocorrer por que as mudanças nos processos de negócios são mais velozes que as mudanças de TI. ( ) A Arquitetura Orientada a Serviços visa dar maior agilidade às mudanças, reduzindo o acoplamento e a interoperabilidade. 18. Podemos definir um serviço como sendo algo útil que um provedor faz para um consumidor. Essa definição, apesar de simples, traz alguns elementos importantes: provedor e consumidor, sendo que o provedor realiza uma ação útil para um consumidor. Todos os serviços possuem pelo menos três características, descritas a seguir: I. O contrato, que é uma especificação do que o serviço oferece, com suas características e regras. II. A interface, que define como um consumidor pode utilizar e acessar um serviço. III. A implementação, que define como um provedor pode prover um serviço. IV. A implementação, que é um tipo de recurso escondido - como uma caixa preta. Assinale a única alternativa que apresenta apenas as afirmativas corretas: a) I e II. b) I, III e IV. c) I, II e III. d) I, II e IV. e) II, III e IV. 19. Todos os serviços possuem um provedor e um consumidor, e três características básicas, o Contrato, a Interface e a Implementação, sobre as quais podemos afirmar que: I. O contrato e a interface são visíveis para o mundo, enquanto a implementação é um recurso escondido, como uma caixa preta. ESPU Sistemas Distribuídos Profº.Renan Portela Jorge - 4 II. O contrato e a interface são orientados para o provedor, enquanto a implementação é orientada para o consumidor. III. Os detalhes do contrato e da interface são importantes para o consumidor, enquanto os detalhes da implementação não são. IV. Os detalhes do contrato e da interface são importantes para o provedor, enquanto os detalhes da implementação não são. Assinale a única alternativa que apresenta apenas as afirmativas corretas:a) I e II. b) I e III. c) II e III. d) II e IV. e) III e IV SEGUNDA PARTE 20. A sincronização de relógios é um desafio interessante em sistemas distribuídos. Em inúmeras aplicações é preciso saber em que determinado horário um evento ocorreu. Porque em um sistema distribuído não é possível simplesmente considerar o horário da máquina em que o sistema está hospedado como verdade absoluta? 21. A sincronização de relógios é um problema clássico da computação. Diversos algoritmos foram propostos para solucionar esse problema. O algoritmo de Christian foi um dos pioneiros. O algoritmo considera o relógio físico para realizar a sincronização. Descreva este algoritmo. 22. Com base no algoritmo de Christian, avalie e resolva a seguinte situação: uma máquina M envia uma mensagem para o servidor de tempo solicitando a hora correta. O servidor responde com uma mensagem s, contendo a informação solicitada. Quando r é enviada, o relógio de M marca 3004, e quando s é recebida o relógio de M marca 3050. Considerando que o servidor consome um tempo de 8 entre o recebimento da mensagem e o envio da resposta para M, para qual valor M deve ajustar o seu relógio, se o servidor respondeu como hora atual o valor 3035? 23. Com base na proposta de solução do problema de sincronismo de relógio usando o algoritmo de Christian, o que acontece quando um determinado processo (cliente) solicita o horário ao servidor? E o que acontece quando o cliente recebe a resposta do servidor? 24. Qual é o resultado, para o programador, do uso de Chamada Remota de Procedimento (Remote Procedure Call, RPC), utilizada principalmente em linguagens procedurais (C, Delphi, etc.) e de Invocação Remota de Métodos (Remote Method Invocation - RMI), utilizada em linguagens orientadas a objeto (Java, C++, C#)? 25. Quais são os tipos de sockets usados pela Chamada Remota de Procedimento (Remote Procedure Call - RPC)? 26. Quais boas práticas são recomendadas para quando estamos trabalhando com o RMI? ESPU Sistemas Distribuídos Profº.Renan Portela Jorge - 5 27. Qual é a relação entre Arquitetura Orientada a Serviços (Service Oriented Architecture - SOA) e Web Services? 28. Quais são os problemas da tecnologia Chamada Remota a Procedimentos (RPC) que os web services pretendem resolver? 29. Com relação à capacidade, qual é a diferença entre a computação “tradicional” e a computação em nuvem? 30. Com relação ao acesso e aos repositórios, quais são as características da computação em nuvem? 31. Quais são as entidades que se relacionam em um modelo de computação em nuvem? E como se dá esse relacionamento? 32. Qual é a função do Hipervisor em um ambiente de computação em nuvem? 33. Em quais conceitos baseia-se a computação em nuvem? 34. Quais os modelos de implantação de um ambiente de computação em nuvem?
Compartilhar