Aprovei.net← Todos os roteiros

UNINTER Sistemas Distribuídos

Sistemas Distribuídos

Questionário sobre Sistemas Operacionais

Atividade Prática

O roteiro como a instituição entrega

1 de 5 páginas

Página 1 do roteiro

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.

  • 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?

  • 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.
  • 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():
  • 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?
  • 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?
  • 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?
  • 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?
  • 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.
  • 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?
  • 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.
  • Para implementar uma solução baseada em sockets UDP, é preciso utilizar duas classes:

DatagramPacket e DatagramSocket. Com funcionam essas classes?

  • 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.

  • 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.
  • 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.

  • 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?
  • 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:
  • O modelo cliente/servidor tem como objetivo descentralizar os dados e recursos de processamento.
  • Esse modelo pode ser composto de um ou mais computadores que atuam como servidores, os quais disponibilizam seus recursos para os demais.
  • O desenvolvimento dessas duas partes (cliente e servidor) é feita de maneira acoplado, e esse acoplamento pode tornar-se um problema.
  • Um problema recorrente em sistemas cliente/servidor tradicionais está relacionado com a heterogeneidade.
  • Todas as alternativas apresentadas estão corretas.
  • 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.

  • 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:

  • I e II.
  • I, III e IV.
  • I, II e III.
  • I, II e IV.
  • II, III e IV.
  • 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.

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:

  • I e II.
  • I e III.
  • II e III.
  • II e IV.
  • III e IV

SEGUNDA PARTE

  • 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?
  • 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.
  • 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?
  • 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?
  • 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#)?
  • Quais são os tipos de sockets usados pela Chamada Remota de Procedimento (Remote

Procedure Call - RPC)?

  • Quais boas práticas são recomendadas para quando estamos trabalhando com o RMI?
  • Qual é a relação entre Arquitetura Orientada a Serviços (Service Oriented Architecture - SOA) e

Web Services?

  • Quais são os problemas da tecnologia Chamada Remota a Procedimentos (RPC) que os web services pretendem resolver?
  • Com relação à capacidade, qual é a diferença entre a computação “tradicional” e a computação em nuvem?
  • Com relação ao acesso e aos repositórios, quais são as características da computação em nuvem?
  • Quais são as entidades que se relacionam em um modelo de computação em nuvem? E como se dá esse relacionamento?
  • Qual é a função do Hipervisor em um ambiente de computação em nuvem?
  • Em quais conceitos baseia-se a computação em nuvem?
  • Quais os modelos de implantação de um ambiente de computação em nuvem?

Outros roteiros de Sistemas Distribuídos

Sobre este texto

Transcrição do roteiro entregue pela instituição, com a estrutura preservada. Nenhum dado de professor, aluno ou contato aparece aqui — foram removidos antes da publicação. O texto está no ar para que você saiba o que a atividade pede antes de começar; ele não contém resolução.

Pedir orçamento no WhatsApp