Analise as afirmações, a seguir, acerca de threads:
I - Uma thread é definida como sendo um fluxo de execução independente.
II - Um processo pode conter uma ou mais threads.
III - Cada thread é caracterizado por um código em execução e um pequeno contexto local, o chamado Thread Local Storage.
IV - Threads são também utilizadas para implementar fluxos de execução dentro do núcleo do SO, neste caso recebendo o nome de threads de núcleo.
Estão corretas as afirmações:
AI, II, III e IV.
BI, II e III, apenas.
CII, III e IV, apenas.
DI, III e IV, apenas.
EI, e II, apenas.
Revelar gabarito e comentário▾
GabaritoA — I, II, III e IV.
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: conceitos fundamentais
Gabarito: letra A. Todas as quatro afirmações estão corretas: uma thread é um fluxo de execução independente; um processo pode conter uma ou mais threads; cada thread possui um código em execução e um contexto local (Thread Local Storage); e threads também são usadas para implementar fluxos de execução no núcleo do SO, chamadas de threads de núcleo. Esses conceitos são a base do modelo de threads em sistemas operacionais.
Uma thread (ou linha de execução) é a menor unidade de processamento que pode ser escalonada pelo sistema operacional. Enquanto um processo é a unidade de gerenciamento de recursos (espaço de endereçamento, arquivos abertos, etc.), a thread é a unidade de execução dentro desse processo. Um processo tradicional, com apenas um thread, é chamado de processo sequencial; quando um processo contém múltiplas threads, elas compartilham o mesmo espaço de endereçamento, as mesmas variáveis globais, arquivos abertos e outros recursos, mas cada uma possui sua própria pilha e seus próprios registradores.
A principal vantagem das threads é a capacidade de executar múltiplas tarefas concorrentemente dentro de um mesmo processo, permitindo que, quando uma thread está bloqueada esperando por E/S, outra thread do mesmo processo possa continuar executando. Isso melhora a utilização da CPU e a responsividade das aplicações. As threads são mais leves que processos: criar e destruir uma thread é mais rápido, e a troca de contexto entre threads do mesmo processo é menos custosa que entre processos.
Existem dois tipos principais de threads: as threads de usuário (user threads), que são gerenciadas por uma biblioteca no espaço do usuário, e as threads de núcleo (kernel threads), que são gerenciadas diretamente pelo sistema operacional. As threads de núcleo são usadas tanto para representar as threads de usuário dentro do núcleo quanto para executar atividades internas do núcleo, como rotinas de drivers de dispositivos. Os modelos de implementação (N:1, 1:1 e N:M) definem como as threads de usuário são mapeadas para as threads de núcleo.
A banca explora aqui a definição clássica de thread, presente em livros como Sistemas Operacionais Modernos (Tanenbaum) e Sistemas Operacionais: Conceitos e Mecanismos (Carlos Maziero). A pegadinha está em verificar se o candidato conhece o conceito de Thread Local Storage (TLS) e a existência das threads de núcleo, que são detalhes que vão além da definição mais básica de thread como "fluxo de execução dentro de um processo".
Threads: Definição (Fluxo de execução independente, Menor unidade escalonável); Relação com processo (Processo contém 1+ threads, Compartilham espaço de endereçamento, Cada thread tem pilha e registradores próprios); Contexto local (TLS) (Registradores, Pilha, Variáveis locais); Tipos (Thread de usuário (biblioteca), Thread de núcleo (gerida pelo SO))
Item I — ✅ Correto
A afirmação define corretamente uma thread como um fluxo de execução independente. Essa é a definição clássica: cada thread representa uma sequência de instruções que pode ser executada concorrentemente com outras threads. A independência se refere ao fato de que cada thread tem seu próprio contador de programa, sua própria pilha e seus próprios registradores, podendo ser escalonada de forma autônoma.
Item II — ✅ Correto
Um processo pode conter uma ou mais threads. Um processo com apenas uma thread é chamado de processo sequencial ou single-thread; um processo com múltiplas threads é chamado de multithread. As threads de um mesmo processo compartilham o espaço de endereçamento e os recursos do processo, mas executam de forma concorrente.
Item III — ✅ Correto
Cada thread é caracterizada por um código em execução e um pequeno contexto local, o chamado Thread Local Storage (TLS). O TLS é composto pelos registradores do processador e uma área de pilha em memória, que permite à thread armazenar variáveis locais e efetuar chamadas de funções. Esse contexto local é o que diferencia uma thread de outra dentro do mesmo processo.
Item IV — ✅ Correto
Threads também são utilizadas para implementar fluxos de execução dentro do núcleo do SO, recebendo o nome de threads de núcleo (kernel threads). Essas threads são gerenciadas diretamente pelo sistema operacional e são usadas tanto para representar as threads de usuário dentro do núcleo quanto para executar atividades internas do núcleo, como rotinas de drivers de dispositivos e tarefas de gerência.
Conclusão: Todos os itens (I, II, III e IV) estão corretos, portanto a alternativa correta é a letra A.