

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.


Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
Na linguagem Java, o modificador volatile é utilizado em ambientes multithread para tratar aspectos do modelo de memória. Considerando o comportamento de variáveis declaradas como volatile, é correto afirmar que:
O uso de volatile garante visibilidade entre threads, assegurando que alterações realizadas por uma thread sejam imediatamente visíveis às demais.
Variáveis volatile são armazenadas na pilha (stack) de cada thread, permitindo acesso mais rápido e isolado.
O modificador volatile pode ser aplicado a métodos para garantir sincronização.
O uso de volatile implica bloqueio de threads até que o valor seja atualizado.
Variáveis volatile garantem atomicidade para operações compostas, como incremento (i++), evitando condições de corrida.
Sobre o Hyper-Threading tecnologia da Intel, analise os itens e assinale a alternativa CORRETA:
I - Faz o único núcleo físico de CPU parecer dois núcleos lógicos (ou threads) para o sistema operacional.
II - Aumenta a memória RAM.
III - Permitindo que ele execute múltiplas tarefas (threads de software) de forma mais eficiente.
IV - Reduzir temperatura do processador.
Somente I e II estão corretos.
Somente I e III estão corretos.
Somente II e III estão corretos.
Somente I e IV estão corretos.
Somente II e IV estão corretos.
De acordo com Silberschatz, uma thread é a unidade básica de utilização da CPU e compartilha com outras threads pertencentes ao mesmo processo diversos recursos, entre os quais se incluem
o contador de programa e o conjunto de registradores.
o estado da pilha (stack) e o identificador do thread (TID).
a seção de código, a seção de dados e os arquivos abertos.
o contexto de escalonamento individual e os registros de ponto flutuante.
A computação paralela e concorrente permite o melhor aproveitamento de processadores multi-core. Analise as afirmativas a seguir sobre threads, processos e condições de corrida.
I- Uma condição de corrida (race condition) ocorre quando o resultado final de uma operação depende da ordem imprevisível de execução de múltiplas threads sobre um recurso compartilhado.
II- Threads criadas dentro de um mesmo processo compartilham o mesmo espaço de endereçamento e recursos, como arquivos abertos, o que facilita a comunicação, mas exige sincronização.
III- O paralelismo é o conceito de gerenciar múltiplas tarefas que podem ou não ser executadas ao mesmo tempo, enquanto a concorrência exige obrigatoriamente hardware com múltiplos núcleos.
IV- O uso de Mutex (Mutual Exclusion) garante que apenas uma thread por vez possa acessar uma seção crítica do código, prevenindo inconsistências de dados.
Assinale a alternativa que apresenta somente as proposições CORRETAS:
I, II e IV.
I, II, III e IV.
I, II e III.
I e III.
II e IV.
Paralelismo em nível de threads ocorre quando:
Um único núcleo executa todas as tarefas.
Vários núcleos executam threads simultaneamente.
Apenas um processo é executado.
O clock do processador é reduzido.
O sistema utiliza apenas cache.


Seu próximo nível começa aqui

Seu próximo nível começa aqui
Destrave a preparação completa para sua aprovação. Com a Assinatura Ilimitada, você estuda com os melhores professores do Brasil e todos os recursos Gran.
A arquitetura de um processador, incluindo o número de núcleos e threads, desempenha um papel fundamental na eficiência do multitarefa e no desempenho em aplicativos paralelizados.
Certo
Errado

A execução do trecho de código precedente, em Java 21, resultará na criação de
um ExecutorService que utiliza um pool fixo de threads virtuais.
threads que serão gerenciadas diretamente pelo sistema operacional.
threads virtuais que serão automaticamente descartadas após a execução da tarefa.
threads virtuais que ficarão em estado de execução, de forma contínua.
threads físicas compatíveis com o método submit() utilizado no código.
Supondo que várias pessoas estejam lendo a mesma folha de um jornal, cada uma delas percorrendo com o dedo o trecho do texto que estão lendo, pode-se dizer que, no contexto de sistemas operacionais, se a folha de jornal for um espaço de endereçamento, cada pessoa pode ser considerada um(a):
Unidade de controle.
Processo pesado.
Recurso compartilhado.
Thread.
Transação.
Threads são usadas para agrupar recursos; e processos são entidades escalonadas para execução na CPU.
Certo
Errado
Em CUDA, a execução paralela é estruturada em threads, que formam blocks, os quais, por sua vez, compõem grids, podendo diferentes blocks dentro de um mesmo grid compartilhar automaticamente sua memória local e seus registradores.
Certo
Errado


Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
Sobre o tratamento de exceções em Java, é incorreto afirmar que:
É relativamente comum que um bloco try seja seguido por vários blocos catch para tratar vários tipos de exceção. Se os corpos dos vários blocos catch forem distintos, usa-se o recurso multi-catch (introduzido no Java SE 7) para capturar esses tipos de exceção em uma única rotina de tratamento catch e realizar a mesma tarefa.
Se um programa tiver apenas uma thread, uma exceção não capturada fará com que ele seja encerrado. Se um programa tiver múltiplas threads, uma exceção não capturada encerrará apenas a thread em que ocorreu a exceção.
A cláusula throws especifica as exceções que o método pode lançar se ocorrerem problemas. Essa cláusula, que deve aparecer após a lista de parâmetros e antes do corpo do método, contém uma lista separada por vírgulas dos tipos de exceção. Essas exceções podem ser lançadas por instruções no corpo do método ou por métodos chamados a partir daí.
Todos os tipos de exceção, que são subclasses diretas ou indiretas da classe RuntimeException (pacote java.lang), são exceções não verificadas. Elas geralmente são causadas por defeitos no código do seu programa. Exemplos de exceção não verificadas incluem: ArrayIndexOutOfBoundsExceptions e ArithmeticExceptions.
O desempenho de um processador com múltiplos núcleos pode ser limitado por aplicações que não foram desenvolvidas com suporte a multithreading ou paralelização.
Certo
Errado
Segundo Tanenbaum (2013), duas das possibilidades existentes para o ganho de velocidade no chip são o:
paralelismo no nível da compilação e o aumento de memória cache.
multithreading no chip e o paralelismo no nível da instrução.
aumento de memória secundária e a duplicação da MMU (Memory Management Unity).
uso de processadores de 64 bits sem registradores e a ausência de memória cache.
uso de programas compilados em linguagem de alto nível e de co-processadores.
Na computação paralela e distribuída, problemas com diferentes custos computacionais são divididos entre múltiplas unidades de execução.
Assinale a alternativa que apresenta um tipo de unidade de execução existente dentro de um processo.
Core
Kernel
Macrotarefa
Microtarefa
Thread
Em uma GPU, o programador define diretamente no código quantos blocos de threads devem ser executados, enquanto o escalonador de blocos de threads, implementado em hardware, distribui esses blocos entre os processadores SIMD multithreaded.
Certo
Errado


Seu próximo nível começa aqui

Seu próximo nível começa aqui
Destrave a preparação completa para sua aprovação. Com a Assinatura Ilimitada, você estuda com os melhores professores do Brasil e todos os recursos Gran.
Na computação paralela, onde várias tarefas ou processos são executados simultaneamente em diferentes núcleos de processador, a sincronização entre processos é essencial para garantir que essas tarefas cooperem e compartilhem recursos de forma eficiente e correta.
No contexto de um sistema de computação paralela, assinale a opção que apresenta um método de sincronização entre processos que garante que apenas um processo possa acessar uma seção crítica de código por vez.
Semáforo binário.
Barreiras.
Mutex.
Memória compartilhada.
Filas de mensagens.
Em computação paralela os loops paralelos são muito úteis, permitindo que várias iterações de um loop sejam executadas simultaneamente por diferentes threads, aproveitando assim ao máximo os recursos de processamento disponíveis em sistemas paralelos. Isso é especialmente importante para acelerar o processamento de tarefas computacionais intensivas, dividindo o trabalho entre múltiplos núcleos de processamento.
Neste contexto, assinale a opção que apresenta o argumento utilizado no padrão OpenMP para combinar múltiplos loops em um único, permitindo sua execução em paralelo.
reduction(op:var).
collapse(n).
nowait.
final.
critical.
Em um sistema multiprocessado, a arquitetura híbrida de núcleos desempenha um papel crucial na otimização do desempenho. Com base nessa abordagem, os processadores Intel® Core? Ultra (Série 2), recentemente lançados pela Intel®, utilizam dois tipos de núcleos em uma única matriz: P-core e E-core. Ambos os tipos possuem papeis diferentes. Esse processador conta também com Thread Director, a fim de maximizar o desempenho híbrido. Assim sendo, associe a segunda coluna de acordo com a primeira, que associa a tecnologia com suas respectivas características:
Primeira coluna: tecnologia
1.E-Core
2.P-Core
3.Thread Director
Segunda coluna: características
(__)Ideal para processar o trabalho pesado de thread único exigido por muitos mecanismos de jogos.
(__)Fornece feedback de tempo de execução para o sistema operacional tomar a decisão ideal para qualquer carga de trabalho.
(__)Capaz de hyper-threading, o que significa executar dois threads de software ao mesmo tempo.
(__)Otimizado para executar tarefas em segundo plano com eficiência. Tarefas menores podem ser transferidas para E-cores (por exemplo, lidar com Discord ou software antivírus).
(__)Utiliza aprendizado de máquina para agendar tarefas.
(__)Ideal para desempenho escalável e multithread. Trabalha em conjunto com um tipo de núcleo para acelerar tarefas que exigem muito do núcleo (como ao renderizar um vídeo, por exemplo).
Assinale a alternativa que apresenta a correta associação entre as colunas:
2 − 1 − 3 − 2 − 1 − 3.
3 − 1 − 2 − 1 − 3 − 2.
2 − 3 − 2 − 1 − 3 − 1.
1 − 2 − 3 − 3 − 2 − 1.
1 − 3 − 1 − 2 − 2 − 3.
No contexto da programação paralela com OpenMP, as variáveis declaradas fora de um bloco paralelo são compartilhadas automaticamente, enquanto as variáveis declaradas dentro de um bloco paralelo são tratadas como privadas por padrão. Também existe a possiblidade de uso de cláusulas adequadas para garantir o correto compartilhamento ou privacidade das variáveis entre as threads paralelas.
A esse respeito, analise as afirmativas a seguir e assinale (V) para verdadeira e (F) para a falsa.
( ) A cláusula shared(list) especifica que cada variável da lista é compartilhada por todas threads do time, isso é, cada thread tem sua própria cópia da variável.
( ) A cláusula firstprivate(list) especifica que cada variável da lista é privada por todas threads do time, mas são inicializadas com o valor que continha no momento em que a região paralela foi encontrada.
( ) A cláusula private(list) especifica que cada variável da lista é privada por todas threads do time, isso é, todas as threads compartilham uma mesma cópia da variável.
As afirmativas são, respectivamente,
V – V – V.
F – F – F.
V – V – F.
F – V – F.
V – F – V.
Com isto em mente, a cláusula que especifica o número de threads que devem ser executadas em um bloco estruturado em paralelo é
omp_get_thread_num().
collapse(n).
omp_get_num_threads().
reduction(operator:variable).
num_threads.


Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.