Threads em Sistemas Operacionais
Gabarito: letra E. Threads, por padrão, compartilham o mesmo espaço de memória do processo que as criou, conforme o conceito fundamental de threads — essa característica é o que as diferencia de processos. As alternativas A, B, C e D contêm erros conceituais ou afirmações falsas sobre threads no Linux.
A questão cobra o conhecimento básico sobre threads, especialmente no contexto do Linux. Vamos analisar cada alternativa.
Alternativa A — ❌ Incorreta
Afirma que a criação de threads ocorre por uma chamada de sistema fork(). No Linux, threads são criadas pela chamada clone(), não por fork(). O fork() cria um novo processo, com espaço de endereçamento próprio e PID distinto. Threads, por outro lado, são criadas dentro do mesmo processo e compartilham o espaço de memória.
Alternativa B — ❌ Incorreta
Diz que após criar um thread, é atribuído a ele o PID (identificador de processo) x+1 (onde x é o PID do processo original). Threads não recebem um novo PID; elas compartilham o mesmo PID (mais precisamente, o mesmo TGID — Thread Group ID) do processo que as criou. Cada thread possui um TID (Thread ID) único, mas não um PID. Portanto, a afirmação está errada.
Alternativa C — ❌ Incorreta
Afirma que é necessário que o sistema operacional esteja configurado em modo batch para criar threads. Modo batch não tem relação com a criação de threads. Threads podem ser criadas em qualquer modo de operação (batch, interativo, tempo real). O suporte a threads é nativo em sistemas operacionais modernos, independentemente do modo de configuração.
Alternativa D — ❌ Incorreta
Diz que não é permitido a um thread criar outros threads. Isso é falso. Threads podem criar outras threads (threads-filho). No contexto apresentado, menciona-se que "uma thread pode criar outra(s) da mesma forma que um processo". Portanto, threads podem sim criar novas threads.
Alternativa E — ✅ Correta ⟵ GABARITO
Afirma que threads, por padrão, compartilham do mesmo espaço de memória. Correto. Conforme o texto de apoio: "Cada thread tem o mesmo contexto de software e compartilha o mesmo espaço de memória". Essa é uma das principais características das threads: elas compartilham o espaço de endereçamento, variáveis globais, arquivos abertos, etc. Apenas itens como pilha e contador de programa são privados por thread.
Gabarito: letra E.