Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Fundamentos de Sistemas Distribuídos Exercícios

Fazer download em docx, pdf ou txt
Fazer download em docx, pdf ou txt
Você está na página 1de 37

1.

Considerando uma tarefa de 100s onde 5 segundos dela são obrigatoriamente serializáveis, qual é
o speedup no caso do uso de 5 processadores?

2. Um sistema distribuído é definido como uma coleção de computadores independentes que se


apresenta ao usuário como um sistema único e consistente. Baseado nos conceitos definidos para
sistemas distribuídos, analise as afirmativas a seguir.

I - Um sistema distribuído fortemente acoplado provê um nível de integração e compartilhamento


de recursos mais intenso e transparente ao usuário, onde vários processadores compartilham uma
memória e são gerenciados por apenas um sistema operacional.

II - Em um sistema distribuído, a falha pode ser parcial, e o usuário final pode não perceber a
ocorrência da falha, sendo essa uma vantagem dos sistemas distribuídos.
III. Os componentes de um sistema distribuído podem estar localizados em uma rede local ou em
uma rede distribuída, mas os tipos de sistemas operacionais que compõem o sistema distribuído
devem ser necessariamente homogêneos.

IV. Peer-to-peer pode ser entendido como uma arquitetura de sistemas distribuídos caracterizada
pela descentralização das funções na rede, onde cada nodo realiza tanto funções de servidor quanto
de cliente.

É correto o que se afirma apenas em:

1. Considerando os conceitos de memória compartilhada, em relação às afirmações a seguir, marque


a alternativa correta.

I) A memória compartilhada pode ser um método de comunicação entre processos.

II) Os recursos de memória podem ser compartilhados por processos sendo executados em
máquinas distintas.

III) Nesta arquitetura compartilhada, não ocorre problemas de coerência de cache.


2. Considerando os conceitos de memória distribuída, em relação às afirmações a seguir, marque a
alternativa correta.

I) Os processadores precisam estar cientes de onde os dados residem.

II) Ela é altamente escalável.

III) A vantagem da memória distribuída é que ela exclui condições de corrida. O programador deve
pensar sobre a distribuição de dados.
1. Considerando o paralelismo de dados, em relação às afirmações a seguir, marque a alternativa
correta:

I) A mesma tarefa é executada em diferentes subconjuntos de dados.

II) Utiliza-se a computação assíncrona.

III) A quantidade de paralelização é proporcional ao tamanho da entrada.

2. Considerando o paralelismo de tarefas, em relação às afirmações a seguir, marque a alternativa


correta:

I) A mesma tarefa é executada em diferentes subconjuntos de dados.

II) A quantidade de paralelização é proporcional ao número de tarefas independentes realizadas.

III) Como cada processador executará um thread, ou processo, diferente no mesmo conjunto de
dados ou em um conjunto diferente de dados, a aceleração é menor.
1. Em relação à arquitetura cliente-servidor, considerando as afirmações a seguir, assinale a
alternativa correta:

I) Como o armazenamento de dados é centralizado, as atualizações dos dados são muito mais fáceis
de administrar em comparação com o paradigma peer-to-peer (P2P).

II) Funciona com vários clientes diferentes de capacidades diferentes.

III) O modelo não é robusto, pois é sensível à falha de um servidor. No caso de falha por parte de um
servidor crítico, por exemplo, as requisições já feitas pelos clientes não poderão ser atendidas.
2. Em relação ao modelo de comunicação mestre-escravo, considerando as afirmações a seguir,
assinale a alternativa correta:

I) Ao contrário do que a semelhança entre os nomes sugere, os modelos cliente-servidor e mestre-


escravo se diferenciam pela inversão das funções entre cliente/escravo e servidor/mestre.

II) O conjunto de regras e convenções que governam a comunicação é chamado de polling.

III) A maneira pela qual a carga computacional ou o tamanho das tarefas atribuídas aos escravos é
decomposta chama-se granularidade.

1. Considerando os conceitos de variáveis compartilhadas apresentados, em relação às afirmações a


seguir, marque a alternativa correta.

I. O paradigma de thread estático possibilita que parte da memória que é usada para um tipo de
sistema seja preservada para outro.
II. No paradigma de thread dinâmico, todos os threads são bifurcados/iniciados após qualquer
configuração necessária pelo thread mestre, e os threads são executados até que todo o trabalho
seja concluído.
III. Se os recursos necessários já estiverem disponíveis, é mais adequado o uso do paradigma de
thread estático, em vez do thread dinâmico.

2. Considerando os conceitos de variáveis compartilhadas apresentados, em relação às afirmações a


seguir, marque a alternativa correta.

I. O mecanismo mais comumente utilizado para garantir a exclusão mútua é o semáforo.


II. A espera ocupada se caracteriza pelo loop infinito, ocasionando desperdícios de recursos do
sistema, não executando nenhum trabalho útil nesse intervalo, simplesmente ocupando a CPU.
III. Mesmo que o uso de um mutex seja adotado, isso não necessariamente impõe a serialização da
seção crítica.
1. A condição de corrida ocorre quando dois ou mais threads acessam uma variável compartilhada
ao mesmo tempo. Se não for tratada, pode causar comportamentos indesejados na aplicação.
Considerando os conceitos de exclusão mútua, deadlock e condições de corrida, em relação às
afirmações a seguir, marque a alternativa correta.

I. Uma condição de corrida − ou risco de corrida − é a condição em que o comportamento do sistema


depende da sequência ou do tempo de outros eventos incontroláveis.
II. Exclusão mútua é o requisito de que um thread de execução nunca entre em uma seção crítica
enquanto um thread simultâneo de execução já a está acessando.
III. Uma situação de deadlock em um recurso pode surgir se e somente se as cinco condições de
Coffman ocorrerem.

2.
Deadlocks é uma situação indesejável, mas que pode ocorrer quando as condições de Coffman
ocorrem em uma determinada aplicação. Considerando os conceitos de deadlock, em relação às
afirmações a seguir, marque a alternativa correta.
I. Deadlocks fantasmas são deadlocks que são falsamente detectados em um sistema distribuído
devido a atrasos internos do sistema, existindo de fato.
II. Deadlocks (ou impasse) relaciona-se a uma situação em que ocorre um impasse, e dois ou mais
processos ficam impedidos de continuar suas execuções − ou seja, ficam bloqueados, esperando uns
pelos outros.
III. Uma forma de detectar deadlocks distribuídos é pela construção de um gráfico de espera global,
construído a partir de gráficos de espera locais.

1. Em relação às afirmações a seguir, marque a alternativa correta.

I. Um semáforo é um tipo de dado variável ou abstrato usado para controlar o acesso a um recurso
comum por vários processos e evitar problemas de seção crítica em um sistema simultâneo, como
um sistema operacional multitarefa.
II. Um semáforo trivial se assemelha a uma variável simples, que é alterada (incrementada,
decrementada ou alternada) de acordo com a operação definida pelo programador.
III. Os semáforos são ferramentas utilizadas na prevenção de condições de corrida, e seu uso garante
que um programa esteja livre desses problemas.
2. Em relação às afirmações a seguir, marque a alternativa correta.

I. Uma das diferenças entre o tipo de semáforo e o tipo de monitor é que o primeiro possui variáveis
de condição, já o segundo não as possui.
II. A operação signal() é a única maneira pela qual o valor do semáforo pode ser modificado.
III. O semáforo é uma variável inteira S que indica a quantidade de recursos disponíveis no sistema,
enquanto o monitor é o tipo de dado abstrato que permite que apenas um processo seja executado
na seção crítica por vez.
1. Em relação às afirmações a seguir, marque a alternativa correta.

I. Corrotinas são componentes de programas de computador que permitem que a execução desse
programa seja suspensa e reiniciada.
II. O uso de corrotinas permite, por exemplo, a não utilização de mecanismos de primitivas de
sincronização, como semáforos e mutex.
III. As corrotinas são úteis para implementar máquinas de estado.

2. Para que seja desenvolvida uma aplicação que empregue computação paralela, podem ser
utilizados diversos ambientes de programação, como OpenMP, Phtreads, entre outros.
Considerando apenas o ambiente Phtreads, em relação às afirmações a seguir, marque a alternativa
correta.

I. O processo é um grupo de recursos (código e dados), e possui uma identidade própria, enquanto
os threads são criados no contexto de um processo e compartilham o mesmo espaço de
endereçamento.
II. Threads ocupam a CPU do mesmo modo que o processo criador, mas não são escalonadas por
esse mesmo processo.
III. A biblioteca pthreads.h, definida no padrão POSIX threads (IEEE 1003.1c) ou Pthreads, possui
apenas funções para criar e gerenciar threads.
1. Qual o modelo que permite transmitir uma mesma mensagem a vários consumidores?

2. A interação entre as aplicações deve garantir uma dependência mínima entre elas. Isso garante
que qualquer modificação em uma aplicação não irá afetar a outra. Essa afirmação corresponde a
qual funcionalidade?

1. Utiliza um sistema de resolução descentralizada, de forma hierárquica, amplamente usado na

Internet com poucos atributos:

2. É um exemplo de nomeação de atributos, baseados em hierarquia, composto por pares (atributos,


valor), e muito usado em serviços de diretórios:
1. O algoritmo de Lamport visa resolver o problema de:

2. Os algoritmos de eleição são utilizados basicamente para:


1. Com o surgimento dos computadores dotados de múltiplas unidades de processamento, tornou-
se possível desenvolver programas dotados de programação paralela. Em relação à programação
paralela, é correto afirmar que:

2. Assinale a alternativa que traz a função da primitiva "accept()" da API de sockets:


1. O Kubernetes permite resolver vários problemas críticos do uso de cluster de containers,
possibilitando:.

2. Baseado no conhecimento absorvido, marque a alternativa correta: se o keepalived e haproxy


forem executados nos nós do plano de controle:
1. Referente ao OpenShift, podemos afirmar:

2. Com base no que aprendemos sobre OpenShift, utilizando a interface de linha de comando,
podemos verificar:
1. Marque a alternativa que corresponde ao Python:

2. Com base no que aprendemos, são termos usados no tópico da programação CUDA, exceto:
1. Marque a alternativa correta sobre Docker:

2. Em relação à instalação do Docker na Azure, são propriedades de instalação a serem preenchidas,


exceto:
1.Uma tarefa é realizada em 100s. A parte obrigatoriamente serializável desta tarefa corresponde a 10%
dela. Com 45 processadores, em quanto tempo a tarefa seria executada? Selecione a resposta correta.

15s.
10s.
2s.
20s.
12s
Data Resp.: 14/02/2024 19:02:33

Explicação:
A resposta certa é: 12s

2. Qual das arquiteturas da taxonomia de Flynn é a menos comum?


Selecione a alternativa correta.
SSID.
MMID.
MMIS.
SIMD.
MISD.
Data Resp.: 14/02/2024 19:02:57

Explicação:
A resposta certa é: MISD.

3. Em relação ao modelo cliente-servidor, considere as afirmações a


seguir.
I) É a arquitetura de sistemas distribuídos mais amplamente utilizada.
II) Cliente e servidor residem em computadores separados.
III) O servidor pode iniciar a sessão de comunicação.
Selecione a alternativa correta:

Apenas a afirmação I está correta.


As afirmações I e II estão corretas.
As afirmações II e III estão corretas.
Todas as afirmações estão corretas.
Apenas a afirmação II está correta.
Data Resp.: 14/02/2024 19:03:23

Explicação:
A resposta certa é: Apenas a afirmação I está correta.

4. Uma tarefa é realizada em 100s. A parte obrigatoriamente


serializável dessa tarefa corresponde a 10% dela. Considerando que
você teria o número de processadores infinitos para realizar esta
tarefa. Qual seria o tempo mínimo para executar a tarefa? Selecione
a resposta correta.

10s.
Próximo de zero.
20s.
1s.
0,1s.
Data Resp.: 14/02/2024 19:03:55

Explicação:
A resposta certa é: 10s.

5. Em relação aos conceitos de paralelismo de dados, considere as


afirmações a seguir.
I) A computação assíncrona é executada.
II) A mesma tarefa é executada em diferentes subconjuntos dos
mesmos dados.
III) A quantidade de paralelização é proporcional ao tamanho da
saída.
Selecione a alternativa correta:

As afirmações I e III estão corretas.


Apenas a afirmação II é correta.
Todas as afirmações são corretas.
Nenhuma afirmação é correta.
As afirmações II e III estão corretas.
Data Resp.: 14/02/2024 19:04:08

Explicação:
A resposta certa é: Apenas a afirmação II é correta.

6. Em relação a arquitetura cliente-servidor, considere as afirmações a


seguir.
I) Os papéis e as responsabilidades de um sistema de computação
podem ser distribuídos entre vários computadores independentes
que são conhecidos por si só por meio de uma rede.
II) Todos os dados são armazenados nos servidores, que geralmente
possuem controles de segurança muito maiores do que a maioria dos
clientes.
III) Funciona com vários clientes diferentes com capacidades
diferentes.
Selecione a alternativa correta:

As afirmações II e III estão corretas.


Apenas a afirmação I está correta.
As afirmações I e II estão corretas.
Apenas a afirmação II está correta.
Todas as afirmações estão corretas.
Data Resp.: 14/02/2024 19:04:28

Explicação:
A resposta certa é: Todas as afirmações estão corretas.

7. Uma organização planeja otimizar o processamento de dados em


seu sistema distribuído, que lida com tarefas heterogêneas e
complexas.
Qual tipo de paralelismo é mais apropriado para este cenário?

Paralelismo SIMD.
Paralelismo de memória.
Paralelismo de instruções.
Paralelismo de tarefas.
Paralelismo de dados.
Data Resp.: 14/02/2024 19:04:59

Explicação:
O paralelismo de tarefas é o mais apropriado para sistemas distribuídos que lidam com tarefas
heterogêneas e complexas. Ele permite a execução simultânea de tarefas diferentes em múltiplos
processadores, otimizando o processamento e melhorando o desempenho do sistema.

8. Ao implementar um sistema distribuído para processamento de


grandes volumes de dados, uma equipe de desenvolvedores foca na
eficiência e na redução do tempo de resposta.
Qual princípio é mais relevante para atingir esse objetivo?

Memória compartilhada.
Lei de Moore.
Paralelismo de tarefas.
Lei de Amdahl.
Arquitetura SIMD.
Data Resp.: 14/02/2024 19:05:30
Explicação:
A Lei de Amdahl é fundamental ao implementar sistemas distribuídos para processamento de grandes
volumes de dados, especialmente quando o foco é a eficiência e a redução do tempo de resposta. Ela
descreve o limite de quanto um programa pode ser acelerado pela paralelização, enfatizando a importância
do balanceamento entre tarefas paralelas e sequenciais.

9. Uma empresa busca melhorar a tolerância a falhas em seu sistema


distribuído. Ela avalia estratégias para garantir que o sistema
continue operando mesmo diante de falhas parciais.
Qual abordagem é mais eficaz para aumentar a tolerância a falhas
em sistemas distribuídos?

Aumento da capacidade de armazenamento.


Centralização de dados.
Uso exclusivo de memória compartilhada.
Redundância de componentes.
Redução do número de nós.
Data Resp.: 14/02/2024 19:05:54

Explicação:
A redundância de componentes é a abordagem mais eficaz para aumentar a tolerância a falhas em
sistemas distribuídos. Ela envolve ter múltiplas instâncias de componentes críticos, de modo que, se um
falhar, outro pode assumir suas funções, garantindo a continuidade das operações do sistema.

10. Uma empresa de software está desenvolvendo um novo sistema


distribuído e deseja aprimorar a eficiência do processamento
paralelo, considerando diferentes tipos de arquiteturas.
Qual arquitetura de computador é menos adequada para o
processamento paralelo em um sistema distribuído?

SISD.
MIMD.
Arquitetura híbrida.
SIMD.
MISD.
Data Resp.: 14/02/2024 19:06:33

Explicação:
A arquitetura SISD (Single Instruction, Single Data) é a menos adequada para o processamento paralelo
em sistemas distribuídos, pois ela opera com uma única instrução atuando em um único conjunto de dados
por vez. Isso limita a capacidade de processamento paralelo, sendo menos eficiente para sistemas
distribuídos que exigem alto desempenho e manipulação simultânea de múltiplas tarefas ou dados.

Qual era a técnica que permitia alternar tarefas nos primeiros sistemas operacionais não preemptivos?

Threads
Corrotinas
Semáforos
Mutex
Deadlocks
Data Resp.: 14/02/2024 19:08:45

Explicação:
A resposta certa é: Corrotinas

2. São aplicações do Pthreads, exceto:

Reduzir o tamanho de uma aplicação, uma vez que threads ocupam menos espaço em relação aos
processos.
Dividir a aplicação em tarefas que acessam recursos compartilhados.
A sobreposição de tarefas pode acelerar a aplicação.
Utilização em sistemas não-preemptivos.
Possibilitar paralelismo real em sistemas multicore.
Data Resp.: 14/02/2024 19:09:06

Explicação:
A resposta certa é: Utilização em sistemas não-preemptivos.

3. Em relação aos conceitos de exclusão mútua, selecione a alternativa


correta.
I. A exclusão mútua objetiva evitar que dois processos ou threads
tenham acesso simultaneamente a um recurso compartilhado,
acesso esse denominado por seção crítica.
II. A seção crítica não pode ser executada por mais de um
processo/thread ao mesmo tempo.
III. A condição de exclusão mútua, em que um recurso ou está
associado a um único processo ou está disponível, é suficiente para
a ocorrência de bloqueios fatais (deadlocks).

As afirmações II e III estão corretas.


Apenas a afirmação II está correta.
Todas as afirmações estão corretas.
Apenas a afirmação I está correta.
As afirmações I e II estão corretas.
Data Resp.: 14/02/2024 19:10:24

Explicação:
A resposta certa é: Todas as afirmações estão corretas.

4. O algoritmo do avestruz está relacionado a que abordagem de


solução de deadlocks?

Detecção.
Ignorar o impasse.
Condições de corrida.
Preempção.
Encerramento do processo.
Data Resp.: 14/02/2024 19:10:38

Explicação:
A resposta certa é: Ignorar o impasse.

5. Em relação aos conceitos de sincronização de processos, selecione


a alternativa correta.
I. Deadlock (ou impasse) ocorre quando muitos processos estão
esperando por um recurso compartilhado (seção crítica), que está
sendo mantido por algum outro processo.
II. Espera ocupada ocorre quando um processo está esperando para
entrar na seção crítica, mas outros processos a monopolizam, e o
primeiro processo é forçado a esperar indefinidamente.
III. Inversão de prioridade ocorre quando um processo de alta
prioridade está na seção crítica e é interrompido por um processo de
média prioridade.
As afirmações II e III estão corretas.
As afirmações I e II estão corretas.
As afirmações I e III estão corretas.
Apenas a afirmação I está correta.
Apenas a afirmação II está correta.
Data Resp.: 14/02/2024 19:10:57

Explicação:
A resposta certa é: As afirmações I e III estão corretas.

6. Em relação aos conceitos de sincronização de processos, selecione


a alternativa correta.
I. A tarefa de coordenação da execução de processos que possibilita
que dois processos não tenham acessos aos mesmos dados e
recursos compartilhados simultaneamente é denominado de
sincronização de processos.
II. Não é possível a execução simultânea de dois processos em uma
mesma seção crítica.
III. É necessário atender a três condições para que não haja
problemas de sincronização.

Apenas a afirmação I está correta.


Apenas a afirmação II está correta.
Todas as afirmações estão corretas.
As afirmações II e III estão corretas.
As afirmações I e II estão corretas.
Data Resp.: 14/02/2024 19:11:09

Explicação:
A resposta certa é: As afirmações I e II estão corretas.

7. Uma aplicação de computação paralela está enfrentando problemas


de deadlock. Os desenvolvedores estão buscando métodos para
detectar e resolver esses deadlocks em um ambiente que utiliza
múltiplas threads.
Qual abordagem é mais eficaz para detectar e resolver deadlocks em
um ambiente multithread?
Implementar uma política de não preempção.
Aumentar a prioridade de todas as threads.
Reduzir o uso de memória compartilhada.
Limitar o número de threads em execução.
Utilizar um algoritmo de detecção de deadlock.
Data Resp.: 14/02/2024 19:12:31

Explicação:
Utilizar um algoritmo de detecção de deadlock é uma abordagem eficaz para identificar e resolver
deadlocks em ambientes de computação paralela. Esses algoritmos permitem reconhecer situações onde
múltiplas threads estão esperando indefinidamente por recursos, possibilitando a intervenção para
desfazer o impasse.

8. Ao desenvolver um software de processamento de imagens


utilizando computação paralela, a equipe se depara com o desafio de
equilibrar carga entre as threads para maximizar a eficiência.
Qual técnica é mais adequada para balanceamento de carga em um
ambiente de processamento de imagens paralelo?

Priorização de threads baseada em complexidade de tarefas.


Atribuição estática de tarefas a cada thread.
Implementação de um sistema de cache único para todas as threads.
Uso de um algoritmo de escalonamento dinâmico.
Redução do número de threads ativas.
Data Resp.: 14/02/2024 19:12:45

Explicação:
O uso de um algoritmo de escalonamento dinâmico é ideal para o balanceamento de carga em ambientes
de processamento de imagens paralelos. Este método permite a adaptação à carga de trabalho variável de
cada thread, distribuindo as tarefas de maneira mais eficiente e melhorando o desempenho geral do
sistema.

9. Em um sistema de computação paralela, um problema comum é o


acesso simultâneo a uma variável compartilhada, que pode levar a
inconsistências nos dados.
Qual é a melhor estratégia para gerenciar o acesso a uma variável
compartilhada em um ambiente de computação paralela?
Utilizar uma política de escalonamento round-robin.
Aumentar a frequência de atualização da variável.
Dividir a variável em várias partes menores.
Empregar mecanismos de bloqueio ou lock.
Implementar um sistema de cache distribuído.
Data Resp.: 14/02/2024 19:13:07

Explicação:
O uso de mecanismos de bloqueio ou lock é uma estratégia eficiente para gerenciar o acesso a variáveis
compartilhadas em computação paralela. Estes mecanismos garantem que apenas uma thread por vez
possa modificar a variável, prevenindo inconsistências nos dados causadas por acessos simultâneos.

10. Em um sistema operacional que utiliza computação paralela, um


programa foi desenvolvido para gerenciar a alocação de recursos. O
sistema precisa evitar condições de corrida e garantir a sincronização
eficiente entre processos.
Qual técnica seria mais adequada para evitar condições de corrida
neste cenário?

Uso de variáveis locais exclusivamente.


Alocação dinâmica de memória compartilhada.
Implementação de semáforos para controle de acesso.
Priorização de processos baseada em tempo de execução.
Redução da quantidade de processos ativos.
Data Resp.: 14/02/2024 19:13:20

Explicação:
A implementação de semáforos é uma técnica eficaz para controlar o acesso a recursos compartilhados
em ambientes de computação paralela, prevenindo condições de corrida. Semáforos permitem a
sincronização entre processos ao controlar o acesso a recursos, garantindo que apenas um processo os
utilize por vez.

Em um sistema distribuído, se um coordenador de um processo falhar no meio da execução de uma


transação:

Os participantes podem decidir se esperam ou não pela recuperação do processo que falhou.
Os participantes podem decidir se esperam ou não pela recuperação do coordenador que falhou.
O coordenador pode escolher um backup para assumir na sua falha.
Se o coordenador falhar, o sistema para de funcionar e precisará de uma intervenção manual.
Se o coordenador falhar, um algoritmo de eleição se encarrega de eleger um novo coordenador para
continuar com os procedimentos.
Data Resp.: 14/02/2024 19:15:39

Explicação:
A resposta certa é: Se o coordenador falhar, um algoritmo de eleição se encarrega de eleger um novo
coordenador para continuar com os procedimentos.

2. Qual é o passo usado em um algoritmo de eleição?

Replicação dos dados.


Evitar a destruição do coordenador.
Controle de acesso a uma região crítica.
Apagar procedimentos que não foram executados.
Orquestração para eleição de um novo coordenador.
Data Resp.: 14/02/2024 19:15:53

Explicação:
A resposta certa é: Orquestração para eleição de um novo coordenador.

3. A programação OpenMP trata de qual tipo de metodologia de


programação?

Utilizada para desenvolvimento com APIs Pthreads em Unix.


Utilizada para passagem de mensagens em clusters de processamento paralelo.
APIs muito utilizadas para programação de arquiteturas baseadas em código móvel.
Metodologia aplicada para envio de mensagens em sistemas distribuídos.
Método de desenvolvimento de paralelismo explícito, usado em arquiteturas de múltiplos processadores
sobre um único barramento para acesso a memória.
Data Resp.: 14/02/2024 19:16:08

Explicação:
A resposta certa é: Método de desenvolvimento de paralelismo explícito, usado em arquiteturas de
múltiplos processadores sobre um único barramento para acesso a memória.
4. O que é verdadeiro sobre chamadas de procedimentos remotos?

Os clientes implementam a camada de apresentação e de persistência dos dados.


Servidores necessitam obrigatoriamente conhecer a identidade dos clientes.
Os clientes executam chamadas remotas, passando como parâmetros as funções que necessitam ser
executadas em um computador remoto.
Os servidores requisitam serviços dos clientes mediante uma interface HTTP.
Servidores necessitam conhecer a quantidade de clientes antes de executar as funções remotas.
Data Resp.: 14/02/2024 19:16:21

Explicação:
A resposta certa é: Os clientes executam chamadas remotas, passando como parâmetros as funções que
necessitam ser executadas em um computador remoto.

5. A camada de transporte do modelo TCP/IP é responsável pela


transmissão dos dados, garantindo que estes possam chegar de
forma confiável e eficiente ao seu destino. Dois protocolos que atuam
na camada de transporte são o TCP e o UDP.
Considere as afirmativas a seguir acerca desses protocolos.
I. O UDP é orientado à conexão.
II. O TCP verifica os pacotes perdidos e entregues, garantindo
confiabilidade na transmissão de dados ao fim da conexão.
III. O UDP funciona de forma mais rápida que o TCP.
IV. O TCP não possui suporte a conexões full duplex.
Estão corretas as afirmativas:

I e III.
II e III.
II e IV.
I e IV.
III e IV.
Data Resp.: 14/02/2024 19:17:09

Explicação:
A resposta certa é: II e III.
6. Em um sistema distribuído, a replicação de dados é crucial para a
resiliência e disponibilidade. Quando um nó falha, outro pode assumir
suas funções. Este processo depende de um mecanismo eficaz de
replicação de dados.
Qual mecanismo é essencial para a replicação eficiente de dados em
sistemas distribuídos?

Algoritmo de ordenação.
Balanceamento de carga.
Gerenciamento de memória.
Protocolo de estado.
Protocolo de consenso.
Data Resp.: 14/02/2024 19:17:22

Explicação:
O protocolo de consenso é fundamental na replicação de dados em sistemas distribuídos, garantindo que
todos os nós mantenham uma visão consistente dos dados. Ele permite que, mesmo em caso de falhas, o
sistema continue operando de maneira coerente.

7. Sistemas distribuídos utilizam a sincronização de tempo para manter


a consistência operacional. Uma variação mesmo que mínima pode
causar desvios significativos nos resultados.
Qual técnica é primordial para manter a sincronização de tempo em
sistemas distribuídos?

Mecanismo de backup.
Protocolo NTP.
Algoritmo de eleição.
Gerenciamento de tarefas.
Controle de acesso.
Data Resp.: 14/02/2024 19:17:34

Explicação:
O Protocolo de Tempo de Rede (NTP) é essencial em sistemas distribuídos para sincronizar relógios dos
computadores na rede. Ele garante que as operações ocorram de forma coordenada e consistente.
8. Na computação distribuída, a resolução de nomes é um desafio, visto
que identifica recursos distribuídos geograficamente, garantindo a
comunicação efetiva entre diferentes nós.
Qual sistema é crucial para a resolução eficaz de nomes em
computação distribuída?

Middleware.
DNS.
Sistema de gerenciamento de banco de dados.
Sistema de controle de versão.
Sistema de arquivos.
Data Resp.: 14/02/2024 19:17:50

Explicação:
O Sistema de Nomes de Domínio (DNS) é vital para resolver nomes em computação distribuída,
traduzindo nomes de domínio fáceis de lembrar em endereços IP necessários para a localização de
recursos na rede.

9. A transparência é um aspecto chave em sistemas distribuídos,


permitindo que os usuários interajam com o sistema como se fosse
um único sistema coerente, apesar de sua natureza distribuída.
Qual tipo de transparência é mais relevante para ocultar a
distribuição física dos recursos em um sistema distribuído?

Transparência de localização.
Transparência de replicação.
Transparência de performance.
Transparência de falhas.
Transparência de acesso.
Data Resp.: 14/02/2024 19:18:04

Explicação:
A transparência de localização é crucial em sistemas distribuídos, pois permite que os usuários acessem
recursos sem precisar saber sua localização física, mantendo a ilusão de um sistema unificado.

10. Na computação distribuída, o balanceamento de carga é fundamental


para otimizar o uso de recursos e melhorar a performance do
sistema, distribuindo tarefas de maneira equitativa entre os nós.
Qual é um método eficaz para realizar o balanceamento de carga em
sistemas distribuídos?

Criptografia de dados.
Algoritmo de escalonamento.
Protocolo de roteamento.
Técnica de compactação.
Mecanismo de autenticação.
Data Resp.: 14/02/2024 19:18:14

Explicação:
Algoritmos de escalonamento são essenciais para o balanceamento de carga em sistemas distribuídos,
pois eles determinam como as tarefas são distribuídas entre os diferentes nós, assegurando uma utilização
eficiente dos recursos.

Sobre CUDA, programas que conseguem bons speedups em GPUs, exceto:

Possuem algoritmos específicos altamente acoplados.


Podem ser subdivido em pequenos subproblemas, que são alocados a diferentes blocos e threads.
Cada thread mantém uma pequena quantidade de estado.
Alta razão (operações de ponto flutuante)/(memória).
Os subproblemas são fracamente acoplados.
Data Resp.: 14/02/2024 19:20:20

Explicação:
A resposta certa é: Possuem algoritmos específicos altamente acoplados.

2. Uma imagem de container do Docker é um pacote de software leve,


independente e executável que inclui tudo o que é necessário para
executar uma aplicação. Na criação de um arquivo Dockerfile, a
instrução WORKDIR:

Mapeia uma porta externa para uma porta interna à rede Docker.
Divulga uma porta (TCP ou UDP) para os hosts externos à rede Docker.
Expõe um serviço do container para a rede Docker default.
Documenta quais portas se pretende publicar.
Define o diretório de trabalho de um contêiner do Docker a qualquer momento.
Data Resp.: 14/02/2024 19:20:34
Explicação:
A resposta certa é: Define o diretório de trabalho de um contêiner do Docker a qualquer momento.

3. Sobre o CUDA, é incorreto afirmar:

Disponível para Windows (XP, Vista e 7), Linux e MacOS X, em versões de 32 e 64 bits.
Pode ser obtido gratuitamente no site da Nvidia.
Possui o Cuba Driver, que permite o acesso ao hardware.
Possui o CUDA Toolkit, que são ferramentas e bibliotecas para programação em CUDA.
Possui o CUDA SKD, que é um editor de código necessário para programar em CUDA.
Data Resp.: 14/02/2024 19:20:45

Explicação:
A resposta certa é: Possui o CUDA SKD, que é um editor de código necessário para programar em CUDA.

4. O que é o OpenShift Virtualization:

É um sistema operacional que permite a virtualização do sistema Openshift.


É um recurso do Red Hat OpenShift que permite gerenciar os nós dos contêineres.
É um complemento do Red Hat OpenShift Container Platform e do Red Hat OpenShift Kubernetes Engine.
É uma funcionalidade do Red Hat OpenShift que possibilita aos desenvolvedores incorporarem máquinas
virtuais tradicionais a fluxos de trabalho no OpenShift Container Platform.
É baseado no projeto upstream KubeVirt, uma área opensource aberta da Cloud Native Computing
Foundation (CNCF).
Data Resp.: 14/02/2024 19:21:11

Explicação:
A resposta certa é: É uma funcionalidade do Red Hat OpenShift que possibilita aos desenvolvedores
incorporarem máquinas virtuais tradicionais a fluxos de trabalho no OpenShift Container Platform.
5. O Openshift provê recursos a partir do Kubernetes, sendo capaz de
executar e disponibilizar aplicações a partir de contêineres. As
imagens dos contêineres no Openshift podem ser armazenadas no
componente denominado:

secret
pod
registry
master
build
Data Resp.: 14/02/2024 19:21:21

Explicação:
A resposta certa é: pod

6. Sobre o Kubernetes, marque a alternativa correta:

É um sistema PaaS (plataforma como serviço) tradicional e completo.


Fornece serviços em nível de aplicação, tais como middleware.
Dita soluções de logging, monitoramento ou alerta.
Implanta código-fonte e constrói sua aplicação.
Permite armazenar e gerenciar informações confidenciais, como senhas, tokens OAuth e chaves SSH.
Data Resp.: 14/02/2024 19:21:40

Explicação:
A resposta certa é: Permite armazenar e gerenciar informações confidenciais, como senhas, tokens OAuth
e chaves SSH.

7. São as operações usadas em CUDA, exceto:

Alto grau de acoplamento.


Transferência de dados.
Alocação de memória.
Lançamento do kernel.
Liberação de memória.
Data Resp.: 14/02/2024 19:22:27

Explicação:
A resposta certa é: Alto grau de acoplamento.

8. Em um cluster Openshift, há uma série de configurações que são


feitas e devem ser persistidas. O estado persistente do master é
armazenado no componente:

haproxy
namespace
API server
etcd
replica controller
Data Resp.: 14/02/2024 19:22:37

Explicação:
A resposta certa é: etcd

9. Representa o conceito de CUDA, exceto:

Definição de kernels que são executados na GPU.


API com funções, que permitem o gerenciamento da memória da GPU e outros tipos de controle.
É uma arquitetura paralela de propósito geral destinada a utilizar o poder computacional de GPUs Nvidia.
Não permite suporte a uma hierarquia de grupos de threads.
Extensão da linguagem C, que permite o uso de GPUs.
Data Resp.: 14/02/2024 19:23:06

Explicação:
A resposta certa é: Não permite suporte a uma hierarquia de grupos de threads.

Você também pode gostar