Um thread é geralmente definido como um “processo leve” porque um sistema operacional (SO) mantém estruturas de dados menores para um thread do que para um processo. Em relação a isso, qual das alternativas a seguir é VERDADEIRA?
(A) Por thread, o SO mantém apenas o estado de registro da CPU
(B) O SO não mantém uma pilha separada para cada thread
(C) Por thread, o SO não mantém o estado de memória virtual
(D) Por thread, o sistema operacional mantém apenas informações de programação e contabilidade

Resposta: (C)
Explicação: Threads compartilham espaço de endereço de Processo. Virtualmente, a memória se preocupa com processos, não com Threads.

Um thread é uma unidade básica de utilização da CPU, consistindo em um contador de programa, uma pilha e um conjunto de registradores (e um ID de thread.) Como você pode ver, para um único thread de controle - há um contador de programa, e uma sequência de instruções que podem ser realizadas a qualquer momento e para aplicativos multi-threaded - há vários threads dentro de um único processo, cada um tendo seu próprio contador de programa, pilha e conjunto de registros, mas compartilhando código, dados comuns, e certas estruturas, como arquivos abertos.

nitika_58

Opção (A): como você pode ver no diagrama acima, NÃO SOMENTE o registro da CPU, mas os arquivos de pilha e de código, os arquivos de dados também são mantidos. Portanto, a opção (A) não está correta, pois diz que o sistema operacional mantém apenas o estado de registro da CPU.

Opção (B): de acordo com a opção (B), o SO não mantém uma pilha separada para cada thread. Mas, como você pode ver no diagrama acima, para cada thread, uma pilha separada é mantida. Portanto, esta opção também está incorreta.

Opção (C): de acordo com a opção (C), o SO não mantém o estado de memória virtual. E está correto, pois o OS não mantém nenhum estado de memória virtual para thread individual.

Opção (D): de acordo com a opção (D), o SO mantém apenas informações de programação e contabilidade. Mas não é correto, pois contém outras informações como pilha de registros de CPU, contadores de programa, arquivos de dados, arquivos de código também são mantidos.

Referência:
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/4_Threads.html

Esta solução foi contribuída por Nitika Bansal
Quiz desta questão

Aprenda todos os conceitos do GATE CS com aulas gratuitas ao vivo em nosso canal do youtube.