Questões de Concurso sobre Threads

 
 
Disciplina 1
Assunto 1
Banca
Instituição
Cargo
Ano
Carreira
Área de formação
Escolaridade
Dificuldade
 
Comentários:
Professores
Alunos
Meus Comentários
Vídeo
 
Minhas questões:
Resolvidas
Não resolvidas
Certas
Erradas
 
Tipo de questão:
Certo e errado
Múltipla escolha
Incluir questões:
Anuladas
Desatualizadas
 
Questões:
Todas as questões
 
Filtro simplificado
 
Questões
Todas as questões
 
78 questões encontradas
Questões por página
20
Mais recentes
 

Qual é a diferença principal entre um processo e uma thread?


A

Processos são mais rápidos que threads


B

Threads compartilham o mesmo espaço de memória, processos não


C

Processos podem ter múltiplas threads, mas threads não podem ter múltiplos processos


D

Threads são usadas apenas em sistemas operacionais de servidor

Durante uma aula prática de programação paralela, alunos da rede estadual estavam desenvolvendo um sistema com múltiplas threads. Em um dos testes, o sistema travou completamente: uma thread havia bloqueado um recurso e aguardava outro que estava sendo usado por uma segunda thread, que, por sua vez, aguardava a liberação do primeiro recurso. Nenhuma das duas conseguia continuar a execução, e o programa parou de responder.


Essa situação em que dois ou mais processos ficam indefinidamente bloqueados, cada um esperando que o outro libere um recurso, é denominada


A

starvation.


B

escalonamento.


C

swapping.


D

deadlock.


E

multiprogramação.

Correlacione as tecnologias empregadas em Sistemas Operacionais (SO) às suas definições e assinale a opção correta.


TECNOLOGIAS

I- FCFS

II- Semáforos

III- Threads

IV- Journaling

V- Pipes


DEFINIÇÕES

( ) Solução baseada em software para problemas de sincronização de processos.

( ) Permitem a comunicação entre processos pai e filho.

( ) Observado quando processos nunca terminam sua execução e recursos do sistema ficam ocupados impedindo que outro jobs iniciem sua execução.

( ) Possibilitam que um programa continue a ser executado mesmo que parte dele esteja bloqueada.

( ) Algoritmo de scheduling que não adota preempção. Sua implementação é, facilmente, gerenciada com uma fila FIFO.

( ) Recurso disponível no sistema de arquivos "EXT3.


A

(II) (V) (-) (III) (I) (IV)


B

(V) (III) (IV) (I) (II) (-)


C

(III) (V) (-) (I) (Il) (IV)


D

(I) (-) (IV) (V) (II) (III)


E

(IV) (III) (I) (V) (-) (II)

Preencha as lacunas abaixo.


A ____________ refere-se a possibilidade de uma aplicação interativa multithreaded continuar em execução, mesmo que parte dele esteja bloqueado ou executando uma operação demorada. Em relação à questão de ___________, os processos só podem compartilhar recursos por meio de técnicas como memória compartilhada e transmissão de mensagens. O uso de threads proporciona _________, pois a criação de processos, demanda mais alocação de memória e recursos do sistema. Como threads compartilham o espaço do processo principal, sua criação e gerenciamento são mais eficientes. Por fim, em uma arquitetura multiprocessadora, múltiplos threads podem ser executados em paralelo, em diferentes núcleos de processamento, o que melhora o desempenho e contribui para a ____________ de aplicações.


A sequência de palavras que preenche corretamente as lacunas é:


A

capacidade de resposta / compartilhamento de recursos / economia / escalabilidade


B

escalabilidade / capacidade de resposta / compartilhamento de recursos / economia


C

economia / escalabilidade / capacidade de resposta / compartilhamento de recursos


D

compartilhamento de recursos / economia / escalabilidade / capacidade de resposta

Qual é a principal diferença entre um processo e uma thread em sistemas operacionais?


A

Um processo é sempre mais leve e rápido que uma thread.


B

Processos compartilham o mesmo espaço de memória, enquanto threads têm espaços de memória separados.


C

Threads são unidades de execução dentro de um processo, compartilhando os recursos do processo (como memória), o que as torna mais leves para criar e gerenciar.


D

Um processo não pode conter múltiplas threads.


E

Apenas threads podem executar em paralelo em sistemas com múltiplos processadores.

Um processo é conceituado como uma instância executável de um programa que tem um espaço de endereço virtual e código executável, ao passo que as threads são conceituadas como fluxos de execução dentro de um processo que compartilham os recursos do processo-pai.


C

Certo


E

Errado

As Threads são unidades de execução dentro de um processo, permitindo que tarefas sejam realizadas simultaneamente para otimizar o desempenho e a eficiência de programas em ambientes com Linux. Nesse contexto, considere alguns itens importantes de processos e threads:


I- Contador de Programa.

II- Arquivos Abertos.

III- Pilha.

IV- Espaço de Endereçamento.


Assinale a alternativa que traz itens que são específicos de cada Thread.


A

Apenas I e III.


B

Apenas I e IV.


C

Apenas II e III.


D

Apenas II e IV.

Multithreading é um conceito fundamental para o melhor aproveitamento de recursos por um sistema operacional. Para o emprego eficaz desse conceito, é fundamental a existência de mecanismos de sincronização eficientes.


Nesse contexto, analise as afirmativas a seguir.


I. Por definição, semáforos possuem um contador, cujos valores podem ser 0,1 ou 2.

II. Mutexes são projetados para garantir que apenas uma thread possa acessar um recurso compartilhado por vez.

III. Mutexes podem ser considerados uma generalização de semáforos, por conta da maior flexibilidade do contador de um mutex.


Está correto o que se afirma em


A

I, apenas.


B

II, apenas.


C

III, apenas.


D

II e III, apenas.


E

I, II e III.

Os servidores de aplicação utilizam multithreading de forma nativa, para garantir alta escalabilidade e eficiência para seus processos.


C

Certo


E

Errado

As threads (ou processos leves) foram introduzidas como uma forma de tornar a execução de tarefas mais leve e eficiente, permitindo que múltiplas tarefas ocorram simultaneamente dentro de um único processo. Uma das características que tornam as threads mais leves é o compartilhamento de certos componentes do estado do programa.


Considerando essas características, qual das opções a seguir descreve corretamente o que é compartilhado entre threads de um processo multithread?


A

Cada thread possui seu próprio espaço de endereçamento, memória heap e valores de registradores.


B

As variáveis globais e a memória heap são compartilhadas, enquanto a pilha (stack) e os valores dos registradores são exclusivos de cada thread.


C

As variáveis globais, a memória heap e a pilha (stack) são compartilhadas por todas as threads.


D

A pilha (stack) e os valores dos registradores são compartilhados entre as threads, enquanto a memória heap e as variáveis globais são exclusivas de cada thread.


E

As threads têm seus próprios arquivos abertos, mas compartilham as variáveis globais e a pilha (stack).

A função CreateThread do Windows inicia um thread paralelo em relação a um thread em execução. Um programa principal roda:


Imagem associada para resolução da questão


O thread rotB roda:


Imagem associada para resolução da questão


O número total de threads descendentes do programa principal (incluindo ele) é igual a


A

5.


B

10.


C

8.


D

4.


E

7.

Considere as seguintes afirmações sobre Coleções, Threads e Garbage Collector em linguagens de programação:


I. Coleções são estruturas de dados que permitem armazenar e manipular múltiplos elementos de forma organizada;

II. Threads são unidades de execução independentes dentro de um processo, permitindo a execução simultânea de tarefas;

III. O Garbage Collector é um mecanismo que gerencia automaticamente a alocação e desalocação de memória, liberando o programador dessa responsabilidade;

IV. Em Java, as classes ArrayList e LinkedList são exemplos de coleções, sendo a primeira baseada em arrays e a segunda em listas encadeadas;

V. A utilização de múltiplas threads sempre garante um melhor desempenho em qualquer situação, independentemente do número de núcleos de processamento disponíveis.


Assinale a opção CORRETA:


A

Apenas as afirmações I, II e III são verdadeiras.


B

Apenas as afirmações I, II, III e IV são verdadeiras.


C

Apenas as afirmações II, III e V são verdadeiras.


D

Apenas as afirmações I, IV e V são verdadeiras.


E

Todas as afirmações são verdadeiras.

Imagine um cenário onde um computador é estruturado com múltiplos processadores, todos compartilhando a mesma memória RAM, e cada processador é equipado com vários núcleos.


Nesse contexto, o sistema operacional permite a execução de múltiplas threads, que podem ser dinamicamente alocadas em diferentes núcleos e processadores.


Com base nas informações desse cenário, assinale a afirmação verdadeira.


A

Dados trocados durante a comunicação entre processos podem ser armazenados em áreas de memória compartilhada, mas o acesso a essas áreas é gerenciado pelo sistema operacional.


B

Sistemas com múltiplos processadores devem garantir a alocação de uma quantidade idêntica de memória RAM para cada processador.


C

Em sistemas com múltiplos processadores, o uso de semáforos torna-se desnecessário, pois não há concorrência no acesso a recursos compartilhados.


D

Em arquiteturas com múltiplos processadores, a exclusão mútua não é viável, permitindo que apenas uma aplicação seja executada por vez, porém com suporte a múltiplas threads.

A divisão dos processos em threads permite a execução de tarefas de maneira paralela ou concorrente.


As threads, em um sistema operacional Linux,


A

podem ser terminadas seletivamente através do comando kil.


B

são executadas de forma independente para minimizar conflitos.


C

compartilham, em um mesmo processo, o mesmo espaço de endereçamento.


D

apresentam um custo de processamento maior durante mudanças de contexto do que os processos.


E

não são vantajosas em sistemas multiprocessadores, por causarem perda de desempenho.

A espera ociosa, ou ociosidade em espera, ocorre em sistemas operacionais quando um processo ou thread está aguardando a liberação de um recurso compartilhado, mas não está realizando nenhuma atividade útil enquanto aguarda. A espera ociosa é considerada uma ineficiência, pois o recurso de processamento é desperdiçado enquanto o processo não está realizando nenhum trabalho produtivo. Reduzir ou eliminar a espera ociosa é importante para otimizar o desempenho e a eficiência do sistema. Qual algoritmo de exclusão mútua apresenta o problema da espera ociosa?


A

Instrução TSL.


B

Dormi e Acordar.


C

Semáforo.


D

Lamport.

O analista Anderson foi incumbido de introduzir o suporte a paralelismo na aplicação Java NetTRF. Conforme documentação do Java Development Kit usado na NetTRF, Anderson pode implementar threads virtuais ou threads de plataforma. Enquanto um tipo de thread é escalonado diretamente pelo sistema operacional (SO), o outro é escalonado pelo próprio Java runtime (JRE). Para fins de simplicidade, o analista deve escolher apenas um tipo de thread. Na NetTRF, cada thread deve ter uma pilha de chamadas de baixa profundidade.


Para permitir o maior número possível de threads na NetTRF, dadas as condições, Anderson deve implementar threads:


A

virtuais, pois as threads de plataforma não possuem pilha de chamadas própria;


B

de plataforma, pois as threads virtuais não possuem pilha de chamadas própria;


C

virtuais, pois são escalonadas pelo JRE de forma a permitir um número maior de threads;


D

de plataforma, pois são escalonadas pelo JRE de forma a permitir um número maior de threads;


E

de plataforma, pois são escalonadas pelo SO de forma a permitir um número maior de threads.

Leia o texto a seguir:


A questão do aplicativo que não funciona adequadamente ao ser transferido de um ambiente para outro é tão antiga quanto a própria história do desenvolvimento de software. Geralmente, essas dificuldades ocorrem devido a disparidades na configuração dos requisitos da biblioteca principal e outras necessidades de suporte.


Disponível em: <https://azure.microsoft.com/>. Acesso em 24 fev. 2024. [Adaptado].


A tecnologia que possibilita contornar o problema mencionado no texto é


A

o container.


B

a thread.


C

o deadlock.


D

o pooling.

   
Gerar simulado