📜  门| GATE-CS-2007 |问题17

📅  最后修改于: 2021-06-29 04:41:20             🧑  作者: Mango

考虑以下有关用户级线程和内核级线程的语句。下列哪一项是FALSE?
(A)内核级线程的上下文切换时间比用户级线程的上下文切换时间更长。
(B)用户级线程不需要任何硬件支持。
(C)相关的内核级线程可以在多处理器系统中的不同处理器上进行调度。
(D)阻塞一个内核级线程会阻塞所有相关线程。答案: (D)
解释:
内核级线程由操作系统管理,因此,线程操作是在内核代码中实现的。内核级线程还可以通过在不同处理器上拆分线程来利用多处理器系统。如果一个线程阻塞,则不会导致整个过程阻塞。内核级线程也有缺点。由于管理开销,它们比用户级线程慢。内核级上下文切换涉及更多步骤,而不仅仅是保存一些寄存器。最后,它们不是可移植的,因为实现依赖于操作系统。

选项(A):内核级线程的上下文切换时间比用户级线程的上下文切换时间更长。的确,用户级线程由用户管理,内核级线程由操作系统管理。内核级线程管理涉及许多开销,而用户级线程管理中没有这些开销。因此,内核级线程的上下文切换时间比用户级线程的上下文切换时间更长。

选项(B):用户级线程不需要任何硬件支持确实,由于用户级线程由用户管理并由库实现,因此用户级线程不需要任何硬件支持。

选项(C):可以在多处理器系统中的不同处理器上调度相关的内核级线程。这是真的。

选项(D):阻塞一个内核级线程会阻塞所有相关线程。 false,因为内核级线程由操作系统管理,所以如果一个线程阻塞,则不会导致所有线程或整个进程阻塞。

请参阅https://www.geeksforgeeks.org/operating-systems-set-13/的问题4

参考:
http://www.personal.kent.edu/~rmuhamma/OpSystems/Myos/threads.htm
http://quiz.geeksforgeeks.org/operating-system-user-level-thread-vs-kernel-level-thread/

该解决方案由Nitika Bansal提供
这个问题的测验