No que concerne ao gerenciamento de memória, julgue o item a seguir, relativo a threads, processos, segmentação e swap.
Em alguns sistemas operacionais, as threads podem ser de 10 a 100 vezes mais rápidas que os processos, na execução da mesma tarefa.
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoC — Certo
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 × Processos: desempenho relativo
Gabarito: letra C (CERTO). A afirmação está correta: em alguns sistemas operacionais, a criação e a troca de contexto (chaveamento) de threads podem ser de 10 a 100 vezes mais rápidas que as de processos, porque as threads compartilham o mesmo espaço de endereçamento e recursos do processo-pai, eliminando o custo de duplicar esses recursos a cada nova unidade de execução. Essa é uma vantagem clássica das threads sobre os processos, presente na literatura de sistemas operacionais.
O que está por trás dessa diferença de desempenho é a distinção entre processo e thread. Um processo é um programa em execução, com seu próprio espaço de endereçamento, tabela de arquivos abertos, contexto de hardware e demais recursos. Uma thread, por sua vez, é um fluxo de execução dentro de um processo — a unidade básica à qual o sistema operacional aloca tempo de processador. Todas as threads de um mesmo processo compartilham o mesmo espaço de endereçamento, as mesmas variáveis globais, os mesmos arquivos abertos e os mesmos recursos do processo-pai. O que é exclusivo de cada thread é apenas um pequeno contexto local: seus registradores, sua pilha (stack) e seu contador de programa.
É exatamente esse compartilhamento que explica a vantagem de desempenho. Quando o sistema operacional cria um processo, ele precisa alocar e inicializar uma série de estruturas: espaço de endereçamento próprio, tabela de páginas, descritores de arquivos, contexto de hardware completo etc. Já a criação de uma thread dentro de um processo existente é muito mais barata, pois não há novos recursos a alocar — apenas uma nova pilha e um novo contexto de registradores. O mesmo raciocínio vale para o chaveamento de contexto (troca de uma unidade de execução por outra): trocar entre threads do mesmo processo não exige esvaziar a cache de memória nem trocar a tabela de páginas, operações caras que são necessárias na troca entre processos. Por isso, o chaveamento de threads é pelo menos uma ordem de magnitude mais rápido que o de processos.
Na prática, essa diferença se manifesta em aplicações que precisam de muitas unidades de execução concorrentes, como servidores web, jogos e simulações. Um servidor que atende milhares de requisições simultâneas pode criar uma thread para cada requisição, aproveitando o baixo custo de criação e chaveamento, em vez de criar um processo para cada uma — o que seria muito mais lento e consumiria muito mais memória. É por isso que o modelo multithread é preferido em aplicações com alta concorrência.
A pegadinha que a banca explora aqui é sutil: a afirmação diz "em alguns sistemas operacionais", o que é uma ressalva importante. A vantagem de 10 a 100 vezes não é absoluta — depende do modelo de threads implementado. Em threads de usuário (modelo N:1), o chaveamento é feito em espaço de usuário, sem chamada de sistema, o que o torna ainda mais rápido. Em threads de núcleo (modelo 1:1), o chaveamento envolve o núcleo, mas ainda assim é mais barato que o chaveamento de processos, pois não há troca de espaço de endereçamento. A ressalva "em alguns sistemas operacionais" torna a afirmação tecnicamente precisa e, portanto, correta.
Guarde a fronteira que decide esta questão: threads compartilham recursos do processo-pai; processos têm recursos próprios. É esse compartilhamento que torna a criação e o chaveamento de threads muito mais baratos — e é exatamente essa a razão pela qual a afirmação está certa.
Threads × Processos: Processo (Recursos próprios, Espaço de endereçamento próprio, Criação cara, Chaveamento caro); Thread (Compartilha recursos do processo-pai, Só pilha e registradores próprios, Criação barata, Chaveamento rápido); Vantagem de desempenho (10 a 100× mais rápida, Modelo N:1 (usuário), Modelo 1:1 (núcleo))
Alternativa C — ✅ CERTO ⟵ GABARITO
A afirmação está correta. A literatura de sistemas operacionais é clara ao apontar que a criação de threads é significativamente mais rápida que a de processos, e que o chaveamento de contexto entre threads é pelo menos uma ordem de magnitude mais rápido que entre processos. O motivo é estrutural: threads do mesmo processo compartilham o espaço de endereçamento e os recursos do processo-pai, de modo que criar uma thread não exige alocar novos recursos (como tabela de páginas, descritores de arquivos etc.), e trocar de thread não exige esvaziar a cache nem trocar a tabela de páginas. A ressalva "em alguns sistemas operacionais" é tecnicamente precisa, pois a magnitude exata da vantagem depende do modelo de threads (usuário ou núcleo) e da implementação do sistema operacional, mas a ordem de grandeza de 10 a 100 vezes é um valor consagrado na literatura.
PEGA ESSA DICA!
Para questões sobre threads × processos, lembre-se do critério decisivo: compartilhamento de recursos. Threads compartilham espaço de endereçamento, arquivos abertos e variáveis globais do processo-pai; processos têm tudo isso próprio. Toda vantagem de desempenho das threads (criação, chaveamento, comunicação) decorre desse compartilhamento — e toda desvantagem (falta de proteção entre threads, risco de corrupção de dados) também. Se a alternativa falar em "mais rápido", "menor overhead", "compartilham memória", está do lado das threads; se falar em "isolamento", "proteção", "recursos próprios", está do lado dos processos.