Pular para o conteúdo principal

Questão de Sistemas Operacionais — Conceitos de Gerência de Processos (SO) — VUNESP 2026

Sistemas OperacionaisConceitos 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.

  1. AA semelhança entre ambos é que eles compartilham um espaço de endereçamento e dados.
  2. BO modelo de programação que emprega processos é mais simples do que o que utiliza threads.
  3. COs processos podem ser utilizados em sistemas com múltiplas CPUs, ao contrário dos threads.
  4. DOs threads são mais rápidos para serem criados e destruídos do que os processos.
  5. 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.

Processos
  • 1Unidade de isolamento e recursos
  • 2Espaço de endereçamento próprio
  • 3Criação/destruição custosa
  • 4Comunicação via IPC
  • 5Estados: Novo, Pronto, Executando, Bloqueado, Terminado
  • 6Threads
    • Unidade de execução
    • Compartilham espaço de endereçamento
    • Criação/destruição rápida
    • Comunicação via memória compartilhada
    • Própria pilha e registradores
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

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.

Gabarito: letra D

Link permanente: /questoes/vu169304