Alternativa D - São linhas de execução concorrentes dentro de um processo.
Introdução
Para compreender a resposta correta, é necessário diferenciar os conceitos de Processo e Thread (ou Tarefa) em Sistemas Operacionais. Ambos são fundamentais para o gerenciamento da CPU e da memória.
O conceito central aqui é que uma Thread representa a unidade mínima de processamento que pode ser agendada pelo sistema operacional.
Análise das Alternativas
Abaixo, detalhamos o porquê da alternativa D estar correta e as demais estarem incorretas:
- Definição Técnica (Alternativa D): Uma thread é essencialmente uma sequência de instruções que podem ser executadas independentemente. Elas residem dentro de um processo e compartilham o mesmo espaço de endereçamento de memória, pilha e recursos do sistema, mas possuem seu próprio contador de programa e registradores. Isso permite a concorrência (execução intercalada ou paralela).
- Por que a A está errada? O uso de threads não deve ser evitado. Pelo contrário, elas trazem benefícios significativos como maior responsividade (ex: manter a interface gráfica ativa enquanto carrega dados), economia de recursos (criar uma thread é mais leve que criar um novo processo) e melhor utilização da CPU.
- Por que a B está errada? Em sistemas com múltiplas UCPS (Unidades Centrais de Processamento) ou núcleos, as threads permitem o paralelismo real, onde diferentes threads rodam simultaneamente em diferentes núcleos, aumentando drasticamente o desempenho.
- Por que a C está errada? Um processo pode conter várias threads. Na verdade, a maioria dos programas modernos utiliza múltiplas threads para realizar tarefas complexas em paralelo.
- Por que a E está errada? Embora as threads sejam mais leves que processos completos, dizer que são "processos com menos controle" é tecnicamente impreciso. O SO gerencia threads diretamente (via escalonador), e a distinção principal é que elas compartilham recursos do processo pai, enquanto processos têm espaços de memória isolados.
Conclusão
A definição clássica e técnica de thread é a de uma linha de execução independente que opera dentro do contexto de um processo compartilhado. Portanto, a alternativa D é a única que descreve corretamente a natureza dessas entidades.