Considere as seguintes instruções sobre threads de nível de usuário e threads de nível de kernel. Qual das seguintes afirmações é FALSE?
(A) O tempo de troca de contexto é mais longo para threads de nível de kernel do que para threads de nível de usuário.
(B) Threads de nível de usuário não precisam de nenhum suporte de hardware.
(C) Threads de nível de kernel relacionados podem ser agendados em processadores diferentes em um sistema multi-processador.
(D) O bloqueio de um thread no nível do kernel bloqueia todos os threads relacionados.

Resposta: (D)
Explicação:
Threads de nível de kernel são gerenciados pelo sistema operacional, portanto, as operações de thread são implementadas no código do kernel. Threads de nível de kernel também podem utilizar sistemas multiprocessadores, dividindo threads em diferentes processadores. Se um thread bloquear, não fará com que todo o processo seja bloqueado. Os encadeamentos no nível do kernel também têm desvantagens. Eles são mais lentos do que os threads no nível do usuário devido à sobrecarga de gerenciamento. A troca de contexto no nível do kernel envolve mais etapas do que apenas salvar alguns registros. Finalmente, eles não são portáveis ​​porque a implementação depende do sistema operacional.

opção (A): o tempo de troca de contexto é mais longo para threads de nível de kernel do que para threads de nível de usuário. Verdadeiro, as threads no nível do usuário são gerenciadas pelo usuário e as threads no nível do kernel são gerenciadas pelo sistema operacional. Existem muitos overheads envolvidos no gerenciamento de thread em nível de kernel, que não estão presentes no gerenciamento de thread em nível de usuário. Portanto, o tempo de troca de contexto é maior para threads de nível de kernel do que para threads de nível de usuário.

Opção (B): Threads de nível de usuário não precisam de suporte de hardware Verdadeiro, como threads de nível de usuário são gerenciados pelo usuário e implementados por Bibliotecas, threads de nível de usuário não precisam de nenhum suporte de hardware.

Opção (C): Threads de nível de kernel relacionados podem ser agendados em processadores diferentes em um sistema multiprocessador. Isto é verdade.

Opção (D): o bloqueio de um thread no nível do kernel bloqueia todos os threads relacionados. false, uma vez que os threads de nível do kernel são gerenciados pelo sistema operacional, se um thread for bloqueado, não fará com que todos os threads ou todo o processo sejam bloqueados.

Consulte a pergunta 4 de https://www.geeksforgeeks.org/operating-systems-set-13/

Referência:
http://www.personal.kent.edu/~rmuhamma/OpSystems/Myos/threads.htm
https://www.geeksforgeeks.org/difference-between-user-level-thread-and-kernel-level- fio/

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.