Questão de Sistemas Operacionais — Threads — FCC 2020
Sistemas Operacionais›Threads
Código
fc059151
Banca
FCC
Órgão
AL-AP
Ano
2020
Cargo
Analista Legislativo - Técnico de Segurança da Informação
Ao desenvolver um programa para o seu computador, que deverá realizar uma grande quantidade de computação e de processamento de entrada e saída, um Técnico de Segurança da Informação foi orientado por um supervisor a utilizar Threads. O uso de Threads em programas dessa natureza
Anão deverá ser considerado, a menos que o computador possua múltiplas Unidades Centrais de Processamento.
Bnão deverá trazer qualquer benefício, pois Threads são recomendáveis em arquiteturas que utilizam múltiplos computadores.
Cpoderá trazer ganhos importantes de desempenho ao programa, pois, para o problema apresentado, Threads permitirão a realização de atividades concorrentemente.
Dpoderá trazer alguns ganhos de desempenho do programa, porém, exigirá o uso de mais recursos de armazenamento, pois Threads não podem compartilhar espaço de endereçamento, variáveis globais e arquivos abertos.
Etrará maior facilidade na programação, porém, diminuirá o desempenho do programa, pois se demora mais para criar e destruir Threads quando se compara com os processos convencionais
Revelar gabarito e comentário▾
GabaritoC — poderá trazer ganhos importantes de desempenho ao programa, pois, para o problema apresentado, Threads permitirão a realização de atividades concorrentemente.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Threads e desempenho em programas com computação e E/S
Gabarito: letra C. Threads permitem a execução concorrente de tarefas dentro de um mesmo processo, compartilhando memória e recursos. Em um programa que realiza muita computação e operações de E/S, as threads podem sobrepor o processamento com a espera de E/S, trazendo ganhos significativos de desempenho. As demais alternativas contêm erros conceituais sobre threads.
Análise das alternativas
Alternativa A — ❌ Incorreta
Afirma que threads só devem ser consideradas se o computador tiver múltiplas CPUs. Isso é falso: threads podem trazer benefícios mesmo em uma única CPU, pois permitem que enquanto uma thread espera por E/S, outra utilize a CPU (concorrência). O ganho não depende exclusivamente de paralelismo real.
Alternativa B — ❌ Incorreta
Diz que threads não trazem benefício e são recomendáveis apenas em múltiplos computadores. Threads são uma técnica dentro de um único computador (processo), não em sistemas distribuídos. Para múltiplos computadores, usa-se comunicação entre processos (IPC) ou middlewares.
Alternativa C — ✅ Correta ⟵ GABARITO
Threads permitem que atividades sejam executadas concorrentemente. Em um programa com computação intensa e muitas operações de E/S, é possível sobrepor a execução de uma thread que processa dados enquanto outra aguarda conclusão de E/S, aumentando a eficiência e o throughput. Isso é um dos principais motivos para usar threads.
Alternativa D — ❌ Incorreta
A alternativa contém um erro grave: afirma que "Threads não podem compartilhar espaço de endereçamento, variáveis globais e arquivos abertos". Na verdade, threads de um mesmo processo compartilham todos esses recursos. Elas têm suas próprias pilhas e registradores, mas a memória do processo (incluindo variáveis globais e arquivos abertos) é comum a todas as threads. O uso de threads pode exigir mais recursos de armazenamento? Não, porque compartilham a mesma memória. A afirmação sobre armazenamento é incorreta.
Alternativa E — ❌ Incorreta
Diz que threads diminuem o desempenho porque criá-las e destruí-las é mais demorado que em processos. Na realidade, threads são muito mais leves que processos: a criação de uma thread é mais rápida e consome menos recursos do que a criação de um processo. Além disso, threads podem melhorar o desempenho, não reduzi-lo.
NÃO CAIA NESSA!
A alternativa D inverte uma característica central das threads: o compartilhamento de memória e recursos. Candidatos que confundem threads com processos (que têm espaços de endereçamento separados) podem marcar essa alternativa. Lembre-se: threads de um mesmo processo compartilham espaço de endereçamento, variáveis globais e arquivos abertos. Elas só não compartilham pilha e registradores (contexto de execução individual).