Pular para o conteúdo principal

Questão de Sistemas Operacionais — Threads (SO) — VUNESP 2023

Sistemas OperacionaisThreads (SO)
Código
vu196253
Banca
VUNESP
Órgão
Pref Peruíbe
Ano
2023
Cargo
Ana Sis (Peruíbe)

Presentes em diversos sistemas operacionias, os threads apresentam algumas características, tais como:

  1. Aa troca de threads requer que o computador seja reiniciado.
  2. Bnão compartilham espaço de endereçamento e seus dados entre si, por questões de segurança.
  3. Cnão podem ser utilizados em sistemas com múltiplas UCPs, onde o paralelismo real é possível.
  4. Dsão criados com mais rapidez do que os processos.
  5. Esão destruídos com menos rapidez do que os processos.
Revelar gabarito e comentário

GabaritoD — são criados com mais rapidez 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”.

Threads em Sistemas Operacionais

Gabarito: letra D. Threads são criados com mais rapidez do que os processos porque não possuem recursos associados a eles, como espaço de endereçamento próprio, e compartilham o contexto do processo-pai, o que torna sua criação e destruição mais leves e rápidas. Essa é uma característica fundamental dos threads, conforme a literatura de sistemas operacionais.

Threads, também chamados de fios de execução ou encadeamentos, são a unidade básica de utilização da CPU dentro de um processo. Um processo pode conter uma ou mais threads, cada uma executando seu próprio código, mas compartilhando o mesmo espaço de endereçamento, variáveis globais, arquivos abertos e outros recursos do processo. Essa característica de compartilhamento é o que torna os threads tão eficientes: como não precisam duplicar o contexto do processo, sua criação e destruição são muito mais rápidas do que as de processos completos.

A principal diferença entre processos e threads está na granularidade do contexto. Um processo possui seu próprio espaço de endereçamento, tabela de arquivos, sinais e outros recursos, o que exige um overhead maior para ser criado e gerenciado. Já os threads, por compartilharem esses recursos com o processo-pai, precisam apenas de uma pilha própria e de um pequeno contexto de hardware (registradores), o que torna sua criação e destruição muito mais leves. É por isso que a alternativa D está correta: a criação de threads é mais rápida que a de processos.

Outro ponto importante é que os threads são especialmente úteis em sistemas com múltiplas CPUs, onde o paralelismo real é possível. Nesses sistemas, cada thread pode ser executada em uma CPU diferente, permitindo que tarefas sejam processadas simultaneamente de verdade. Em sistemas com uma única CPU, a execução é aparentemente simultânea, pois a troca entre threads é tão rápida que parece que estão rodando ao mesmo tempo.

A banca explora aqui a confusão entre as características de processos e threads. É comum o candidato confundir o compartilhamento de recursos, a velocidade de criação e a aplicação em sistemas multiprocessados. A pegadinha está em inverter essas características, como fazem as alternativas B, C e E. Guarde a fronteira entre o que é próprio de processos e o que é próprio de threads: é exatamente nela que as alternativas se dividem.

1Compartilham com o processo-pai
Espaço de endereçamento
Dados e variáveis globais
Arquivos abertos
2Criação e destruição
Mais rápidas que processos
Não possuem recursos próprios
3Execução
Úteis em múltiplas UCPs
Paralelismo real
Threads
LEVELsoulevel.com.br
Threads: Compartilham com o processo-pai (Espaço de endereçamento, Dados e variáveis globais, Arquivos abertos); Criação e destruição (Mais rápidas que processos, Não possuem recursos próprios); Execução (Úteis em múltiplas UCPs, Paralelismo real)

Alternativa A — ❌ Incorreta

A troca de threads não requer reinicialização do computador. A troca de contexto entre threads é uma operação rápida e corriqueira, realizada pelo escalonador do sistema operacional ou pela biblioteca de threads, sem qualquer necessidade de reiniciar o sistema. Essa alternativa confunde a troca de threads com uma falha grave do sistema, o que não tem relação com o conceito.

Alternativa B — ❌ Incorreta

Threads compartilham o espaço de endereçamento e os dados entre si. Essa é uma das principais características dos threads: todos os threads de um processo compartilham o mesmo espaço de endereçamento, variáveis globais, arquivos abertos e outros recursos. Não há proteção entre threads, pois eles são criados para cooperar, não para lutar entre si. A alternativa inverte essa característica, afirmando que não compartilham, o que é falso.

Alternativa C — ❌ Incorreta

Threads podem e devem ser utilizados em sistemas com múltiplas UCPs, onde o paralelismo real é possível. Nesses sistemas, cada thread pode ser executada em uma CPU diferente, permitindo que tarefas sejam processadas simultaneamente de verdade. A alternativa afirma o contrário, o que é um erro clássico de inversão de conceito.

Alternativa D — ✅ Correta ⟵ GABARITO

Threads são criados com mais rapidez do que os processos. Isso ocorre porque threads não possuem recursos associados a eles, como espaço de endereçamento próprio, e compartilham o contexto do processo-pai. A criação de um thread envolve apenas a alocação de uma pilha e um pequeno contexto de hardware, enquanto a criação de um processo envolve a duplicação de todo o contexto, incluindo espaço de endereçamento, tabela de arquivos e outros recursos. Essa é uma das principais vantagens do uso de threads.

Alternativa E — ❌ Incorreta

Threads são destruídos com mais rapidez, e não com menos rapidez, do que os processos. Assim como a criação, a destruição de threads é mais leve e rápida, pois não há recursos associados a eles para serem liberados. A alternativa inverte essa característica, afirmando que são destruídos com menos rapidez, o que é falso.

PEGA ESSA DICA!

Para questões sobre threads, lembre-se sempre das três principais características: (1) compartilham espaço de endereçamento e dados com o processo-pai; (2) são criados e destruídos mais rapidamente que processos; (3) são úteis em sistemas com múltiplas CPUs para paralelismo real. Se uma alternativa inverter qualquer uma dessas características, ela está errada.

Gabarito: letra D

Link permanente: /questoes/vu196253