ATIVIDADE PRÁTICA – SISTEMAS DISTRIBUÍDOS – UNINTER

ANO
2026
ATIVIDADE PRÁTICA
SISTEMAS DISTRIBUÍDOS
COLOQUE SEU NOME AQUI. RU: XXXXXX
Prof. Me. Bruno Kostiuk
INSTRUÇÕES
SOMENTE INFORMATIVO. PODE APAGAR AO ENTREGAR O TRABALHO.
Esta atividade deve ser desenvolvida individualmente. A entrega deve ser feita na
seção Trabalhos do Univirtus. Depois do arquivo enviado, não há possibilidade de reenvio.
Verifique o arquivo enviado antes de confirmar a entrega. Só envie seu trabalho quando
tiver certeza de que está tudo correto. Preste muita atenção ao prazo! Não haverá
prorrogação.
Em caso de dificuldade na elaboração ou publicação
do trabalho, envie uma tutoria!
Iremos auxiliar na tutoria, desde que não envolva fazer uma correção prévia do
trabalho. Na tutoria, nós NÃO fornecemos as respostas das questões.
A proposta deste trabalho é que o aluno relembre os conceitos apresentados ao longo
da disciplina. Para isso, pede-se neste trabalho a resolução das questões de 1 até 34 na
própria folha. Observação a resposta deve estar na cor vermelha. Todas as questões têm o
mesmo peso, a nota será proporcional a quantidade de questões com acerto.

�𝑂𝑇𝐴𝐴𝑇𝐼𝑉𝐼𝐷𝐴𝐷𝐸 = 𝑄𝑢𝑒𝑠𝑡õ𝑒𝑠_𝑐𝑜𝑚_𝐴𝑐𝑒𝑟𝑡𝑜
34
∗ 100
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 possa 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.
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.
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.
II.
O contrato e a interface são visíveis para o mundo, enquanto a implementação é um
recurso escondido, como uma caixa preta.
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
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. Por que 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?
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?

Olá, somos a Cavalini Assessoria Acadêmica.

Fazemos esse trabalho por um preço justo, sem cópia.

Nossa equipe multidisciplinar é altamente capacitada para oferecer assessoria na elaboração das mais variadas atividades, garantindo autenticidade e originalidade em todos os trabalhos.

Entre em contato conosco para solicitar o seu.

Aponte o celular para abrir o WhatsApp