Questão de Sistemas Operacionais — Conceitos de Gerência de Processos (SO) — VUNESP 2026
Sistemas Operacionais›Conceitos de Gerência de Processos (SO)
Código
vu169304
Banca
VUNESP
Órgão
Rio Preto Prev
Ano
2026
Cargo
Ana Prev (RP Prev)
Assinale a alternativa correta relacionada com processos e threads em sistemas operacionais.
AA semelhança entre ambos é que eles compartilham um espaço de endereçamento e dados.
BO modelo de programação que emprega processos é mais simples do que o que utiliza threads.
COs processos podem ser utilizados em sistemas com múltiplas CPUs, ao contrário dos threads.
DOs threads são mais rápidos para serem criados e destruídos do que os processos.
EUm processo pode estar em um dos cinco estados: Em Execução, Bloqueado, Pronto, Aguardando e Eliminado.
Revelar gabarito e comentário▾
GabaritoD — Os threads são mais rápidos para serem criados e destruídos do que os processos.
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”.
Processos e Threads em Sistemas Operacionais
Gabarito: letra D. Threads são mais rápidos para serem criados e destruídos do que processos, pois compartilham o espaço de endereçamento e os recursos do processo ao qual pertencem, exigindo menos trabalho do sistema operacional (SO) para sua criação e destruição. Essa é uma distinção fundamental entre os dois conceitos, amplamente abordada em sistemas operacionais.
Para entender por que a alternativa D é a correta, é preciso compreender o que são processos e threads e como eles se relacionam. Um processo é uma instância de um programa em execução, incluindo o código, os dados, a pilha e o contexto de hardware (registradores, contador de programa). Ele é uma "cápsula" isolada de execução, com seu próprio espaço de endereçamento e recursos, como arquivos abertos e conexões de rede. Já uma thread (ou processo leve) é um fluxo de execução independente dentro de um processo. Um processo pode conter uma ou mais threads, que compartilham o mesmo espaço de endereçamento, os mesmos dados globais, os arquivos abertos e outros recursos do processo. Cada thread, no entanto, possui sua própria pilha e seus próprios registradores, permitindo que execute código de forma concorrente.
A principal diferença prática entre processos e threads está na forma como o sistema operacional os gerencia. Como os processos são isolados entre si, a criação de um novo processo exige a alocação de um novo espaço de endereçamento, a inicialização de estruturas de controle (como o PCB - Process Control Block) e a configuração de mecanismos de proteção. Isso é um processo relativamente custoso. As threads, por outro lado, são criadas dentro de um processo já existente, compartilhando seu espaço de endereçamento e recursos. A criação de uma thread envolve apenas a alocação de uma nova pilha e a atualização de algumas estruturas de controle, o que é muito mais rápido. Da mesma forma, destruir uma thread é mais simples do que destruir um processo, pois não há necessidade de liberar um espaço de endereçamento inteiro.
Essa diferença de custo é um dos motivos pelos quais as threads são preferidas em aplicações que precisam de muitas tarefas concorrentes, como servidores web e navegadores. A criação e destruição frequente de processos seria ineficiente, enquanto a criação e destruição de threads é leve e rápida. Além disso, a comunicação entre threads é mais simples, pois elas compartilham memória, enquanto a comunicação entre processos exige mecanismos especiais, como pipes, filas de mensagens ou memória compartilhada.
É importante também distinguir os estados de um processo. Um processo pode estar em vários estados, como Novo, Pronto, Executando, Bloqueado e Terminado. A alternativa E menciona estados como "Aguardando" e "Eliminado", que não são os nomes canônicos. O estado "Bloqueado" é o correto para quando o processo espera por um evento, e "Terminado" é o estado final. A banca troca os nomes para confundir o candidato.
Guarde a fronteira entre processos e threads: processos são unidades de isolamento e recursos, enquanto threads são unidades de execução que compartilham esses recursos. É exatamente nessa fronteira que as alternativas se dividem.
A alternativa afirma que processos e threads compartilham um espaço de endereçamento e dados. Isso é verdade apenas para threads. Processos possuem espaços de endereçamento isolados entre si, por isso a comunicação entre eles exige mecanismos especiais. A banca inverte a característica: o compartilhamento de espaço de endereçamento é uma propriedade das threads, não dos processos. O erro está em generalizar para ambos.
Alternativa B — ❌ Incorreta
A alternativa afirma que o modelo de programação com processos é mais simples do que com threads. Na verdade, é o contrário. Programar com threads é mais simples para tarefas que precisam compartilhar dados, pois elas compartilham memória naturalmente. Com processos, o programador precisa lidar com mecanismos de comunicação entre processos (IPC), como pipes, filas de mensagens e memória compartilhada, o que adiciona complexidade. A banca inverte a relação de simplicidade.
Alternativa C — ❌ Incorreta
A alternativa afirma que processos podem ser usados em sistemas com múltiplas CPUs, ao contrário dos threads. Isso é falso. Tanto processos quanto threads podem ser usados em sistemas multiprocessados. As threads podem ser escalonadas para diferentes CPUs, aproveitando o paralelismo. A banca tenta fazer o candidato acreditar que threads são limitadas a uma única CPU, o que não é verdade.
Alternativa D — ✅ Correta ⟵ GABARITO
A alternativa afirma que threads são mais rápidos para serem criados e destruídos do que processos. Isso está correto. Como as threads compartilham o espaço de endereçamento e os recursos do processo, sua criação envolve menos trabalho do sistema operacional. Criar um processo exige alocar um novo espaço de endereçamento e configurar estruturas de controle, enquanto criar uma thread é mais leve. Essa é uma das principais vantagens do uso de threads.
Alternativa E — ❌ Incorreta
A alternativa lista os estados de um processo como: Em Execução, Bloqueado, Pronto, Aguardando e Eliminado. Os estados canônicos são: Novo, Pronto, Executando, Bloqueado e Terminado. A banca troca "Novo" por "Aguardando" e "Terminado" por "Eliminado", o que não corresponde à nomenclatura padrão. O estado "Aguardando" não é um estado formal, e "Eliminado" não é o termo técnico correto.
NÃO CAIA NESSA!
A banca adora inverter as características de processos e threads. Nesta questão, a alternativa A troca o compartilhamento de espaço de endereçamento (que é das threads) para os processos, e a alternativa C tenta limitar o uso de threads em sistemas multiprocessados. Fique atento: threads compartilham recursos, processos são isolados. Com treino, você enxerga essas trocas de longe 💪
PEGA ESSA DICA!
Para diferenciar processos e threads, lembre-se: processo = unidade de recurso (espaço de endereçamento, arquivos, conexões) e thread = unidade de execução (fluxo de código, pilha, registradores). Quando a questão falar em "compartilhamento de memória" ou "criação rápida", pense em threads. Quando falar em "isolamento" ou "proteção", pense em processos.