Julgue o item a seguir, relativo a gerenciamento de memória, conceitos de processo e threads e LDAP.
Threads são usadas para agrupar recursos; e processos são entidades escalonadas para execução na CPU.
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoE — Errado
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 processos: agrupamento de recursos × escalonamento
Gabarito: letra E (ERRADO). A afirmação inverte os papéis: são os processos que servem para agrupar recursos (espaço de endereçamento, arquivos abertos, etc.), enquanto as threads são as entidades escalonadas para execução na CPU. O texto de Tanenbaum é explícito: "Processos são usados para agrupar recursos; threads são as entidades escalonadas para execução na CPU."
O modelo clássico de processo, descrito por Tanenbaum em Sistemas Operacionais Modernos, separa dois conceitos independentes: agrupamento de recursos e execução. O processo é o contêiner — ele detém o espaço de endereçamento com código e dados, arquivos abertos, processos filhos, alarmes pendentes, tratadores de sinais e informações de contabilidade. Já a thread é a unidade de execução dentro desse contêiner: possui contador de programa, registradores e pilha próprios, e é ela que o escalonador do sistema operacional coloca na CPU.
Essa distinção é fundamental para entender por que threads são chamadas de "processos leves": como compartilham o espaço de endereçamento e os recursos do processo-pai, criar e alternar entre threads tem custo (overhead) muito menor do que criar e alternar entre processos. Enquanto a troca de processo exige salvar e restaurar todo o contexto do processo (incluindo o espaço de endereçamento), a troca de thread dentro do mesmo processo preserva o espaço de endereçamento, trocando apenas o contexto de hardware (registradores, pilha, contador de programa).
A pegadinha da banca é exatamente a inversão desses papéis. O candidato que memorizou superficialmente o conceito pode confundir quem agrupa recursos e quem é escalonado. Mas a regra é clara e aparece tanto no modelo clássico quanto na implementação do Windows, onde "os processos são contêineres para programas" e "os threads são a abstração do núcleo para escalonar a CPU".
Guarde a fronteira: processo = posse de recursos; thread = unidade de escalonamento. É exatamente nessa fronteira que a questão se decide.
Processo × Thread: Processo (Agrupa recursos, Espaço de endereçamento, Arquivos abertos, Processos filhos); Thread (Unidade de escalonamento, Contador de programa, Registradores, Pilha própria); Troca de contexto (Processo: contexto completo, Thread: só contexto de hardware)
Item — ❌ ERRADO
A afirmação "Threads são usadas para agrupar recursos; e processos são entidades escalonadas para execução na CPU" está invertida. O correto é o oposto:
Processos agrupam recursos: espaço de endereçamento, descritores de arquivos, processos filhos, alarmes, tratadores de sinais, informações de contabilidade.
Threads são as entidades escalonadas: cada thread tem seu próprio contador de programa, registradores e pilha, e é ela que o escalonador seleciona para execução na CPU.
O texto de Tanenbaum é a fonte direta dessa distinção: "Processos são usados para agrupar recursos; threads são as entidades escalonadas para execução na CPU." A banca trocou os sujeitos — um erro clássico de inversão de conceitos.
NÃO CAIA NESSA!
A banca inverte os papéis de processo e thread. O candidato que decorou as definições sem fixar quem faz o quê cai na armadilha. Lembre-se: o processo é o contêiner (agrupa recursos); a thread é a unidade de trabalho (escalonada na CPU). Com essa âncora, você enxerga a inversão de longe.