考虑下面的关于用户级线程和内核级线程的语句。以下哪项陈述是错误的? (A) 内核级线程的上下文切换时间比用户级线程长。 (B) 用户级线程不需要任何硬件支持。 (C) 在多处理器系统中,可以在不同的处理器上调度相关的内核级线程。 (D) 阻止一个内核级线程会阻止所有相关线程。 答复: (D) 说明: 内核级线程由操作系统管理,因此,线程操作在内核代码中实现。内核级线程还可以通过在不同处理器上拆分线程来利用多处理器系统。如果一个线程阻塞,它不会导致整个进程阻塞。内核级线程也有缺点。由于管理开销,它们比用户级线程慢。内核级上下文切换涉及的步骤不仅仅是保存一些寄存器。最后,它们是不可移植的,因为实现依赖于操作系统。
选项(A):内核级线程的上下文切换时间比用户级线程长。是的,因为用户级线程由用户管理,内核级线程由操作系统管理。内核级线程管理涉及许多开销,而用户级线程管理中没有这些开销。因此,内核级线程的上下文切换时间比用户级线程长。
选项(B):用户级线程不需要任何硬件支持True,因为用户级线程由用户管理并由库实现,用户级线程不需要任何硬件支持。
选项(C):在多处理器系统中,可以在不同的处理器上调度相关的内核级线程。这是真的。
选项(D):阻止一个内核级线程会阻止所有相关线程。错误,因为内核级线程由操作系统管理,如果一个线程阻塞,它不会导致所有线程或整个进程阻塞。
见本报告问题4 https://www.geeksforgeeks.org/operating-systems-set-13/
参考: http://www.personal.kent.edu/~rmuhamma/OpSystems/Myos/threads。htm https://www.geeksforgeeks.org/difference-between-user-level-thread-and-kernel-level-thread/
这个解决方案是由 尼蒂卡·班萨尔 这个问题的小测验