题目
为什么在多CPU环境中一个进程中的多个用户级线程[1]不能在多个CPU上执行?()A. 用户级线程没有PC指针B. 用户级线程没有栈C. 用户级线程没有TCBD. CPU调度是在内核中的,而内核不能感知到用户级线程
为什么在多CPU环境中一个进程中的多个用户级线程[1]不能在多个CPU上执行?()
- A. 用户级线程没有PC指针
- B. 用户级线程没有栈
- C. 用户级线程没有TCB
- D. CPU调度是在内核中的,而内核不能感知到用户级线程
题目解答
答案
D
解析
步骤 1:理解用户级线程和内核级线程的区别
用户级线程由应用程序管理,而内核级线程由操作系统内核管理。用户级线程的调度和管理完全由应用程序负责,而内核级线程的调度和管理由操作系统内核负责。
步骤 2:理解多CPU环境下的线程调度
在多CPU环境中,操作系统内核可以将不同的内核级线程分配到不同的CPU上执行,从而实现并行处理。然而,用户级线程的调度和管理完全由应用程序负责,操作系统内核并不感知用户级线程的存在,因此无法将用户级线程分配到不同的CPU上执行。
步骤 3:分析选项
A. 用户级线程没有PC指针:用户级线程有PC指针,只是由应用程序管理。
B. 用户级线程没有栈:用户级线程有栈,只是由应用程序管理。
C. 用户级线程没有TCB:用户级线程有TCB,只是由应用程序管理。
D. CPU调度是在内核中的,而内核不能感知到用户级线程:这是正确的,因为内核不能感知到用户级线程,因此无法将用户级线程分配到不同的CPU上执行。
用户级线程由应用程序管理,而内核级线程由操作系统内核管理。用户级线程的调度和管理完全由应用程序负责,而内核级线程的调度和管理由操作系统内核负责。
步骤 2:理解多CPU环境下的线程调度
在多CPU环境中,操作系统内核可以将不同的内核级线程分配到不同的CPU上执行,从而实现并行处理。然而,用户级线程的调度和管理完全由应用程序负责,操作系统内核并不感知用户级线程的存在,因此无法将用户级线程分配到不同的CPU上执行。
步骤 3:分析选项
A. 用户级线程没有PC指针:用户级线程有PC指针,只是由应用程序管理。
B. 用户级线程没有栈:用户级线程有栈,只是由应用程序管理。
C. 用户级线程没有TCB:用户级线程有TCB,只是由应用程序管理。
D. CPU调度是在内核中的,而内核不能感知到用户级线程:这是正确的,因为内核不能感知到用户级线程,因此无法将用户级线程分配到不同的CPU上执行。