Questão de Sistemas Operacionais — Threads — FGV 2024
Sistemas Operacionais›Threads
Código
fg099945
Banca
FGV
Órgão
TJ-RR
Ano
2024
Nível
Superior
Cargo
Analista Judiciário - Desenvolvimento de Sistemas
A função CreateThread do Windows inicia um thread paralelo em relação a um thread em execução. Um programa principal roda:O número total de threads descendentes do programa principal (incluindo ele) é igual a
A5.
B10.
C8.
D4.
E7.
Revelar gabarito e comentário▾
GabaritoB — 10.
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”.
Resolução
Gabarito: letra B — a conta chega a 10 threads — alternativa B.
A ideia por trás
Thread é a menor unidade de execução dentro de um processo. Um processo começa com uma thread principal e pode criar outras threads, que rodam concorrentemente e compartilham o mesmo espaço de memória. No Windows, a função CreateThread é a chamada de sistema que cria uma nova thread dentro do processo atual.
Cada chamada a CreateThread cria exatamente uma nova thread. A thread principal é a que executa o programa desde o início. O total de threads descendentes é a soma da thread principal com todas as threads criadas por ela (e, se houver, pelas filhas, mas aqui só a principal cria). A contagem é direta: número de chamadas a CreateThread + 1.
A questão pede explicitamente para incluir a thread principal na contagem. O erro comum é contar apenas as threads criadas, esquecendo de somar a principal.
O que a questão dá
programa principal (thread inicial)
função CreateThread do Windows
figura com chamadas a CreateThread
O que queremos: o número total de threads descendentes do programa principal, incluindo ele
Passo 1 — Contar as chamadas a CreateThread
Cada chamada a CreateThread no código cria uma nova thread. Para saber quantas threads filhas existem, precisamos contar quantas vezes essa função é chamada no programa principal.
9 threads filhas
NÃO CAIA NESSA!
Contar errado o número de chamadas na figura, por exemplo, esquecendo alguma chamada dentro de um loop ou condição.
Passo 2 — Somar a thread principal
O enunciado pede o total de threads descendentes incluindo a principal. A thread principal é a que executa o programa desde o início, então ela deve ser contada.
Por que esta fórmula: Total = threads criadas + 1 (a principal).
De onde vem cada valor: = passo 1: 9
NÃO CAIA NESSA!
Esquecer de somar a thread principal e responder 9, que é uma alternativa distratora.