下列关于线程的描述中,错误的是( )。
A.内核级线程的调度由操作系统完成
B.操作系统为每个用户级线程建立一个线程控制块
C.用户级线程间的切换比内核级线程间的切换效率高
D.用户级线程可以在不支持内核级线程的操作系统上实现
N诺智能批改可自动批改答案并给出反馈,每次使用将消耗 1个诺币
您当前的诺币数量: 个
N诺正在智能批改,预计需要30秒,请稍候...
A. 内核级线程的调度由操作系统完成 正确。内核级线程(Kernel-Level Threads, KLT)由操作系统内核直接管理。内核负责它们的创建、调度、同步和销毁。内核感知所有内核级线程,并在系统全局范围内进行调度。
B. 操作系统为每个用户级线程建立一个线程控制块 错误。这是错误的描述。
用户级线程(User-Level Threads, ULT) 由用户空间的线程库(如POSIX Pthreads)管理,而不是由操作系统内核管理。
操作系统内核并不知道用户级线程的存在。内核只感知到进程,并为每个进程维护一个进程控制块(PCB),但不会为用户级线程维护线程控制块(TCB)。
用户级线程的线程控制块(TCB)是由用户级线程库在进程的用户空间中创建和维护的。操作系统不参与此事。
C. 用户级线程间的切换比内核级线程间的切换效率高 正确。用户级线程的切换发生在用户空间,无需陷入内核(不需要上下文切换和模式切换),只需保存少量寄存器状态。而内核级线程的切换需要陷入内核,进行完整的上下文切换(包括保存和恢复寄存器、更新内存管理单元等),开销较大。
D. 用户级线程可以在不支持内核级线程的操作系统上实现 正确。用户级线程完全由用户空间的线程库实现,操作系统内核无需提供任何特殊支持。例如,早期的操作系统(如传统Unix)本身不支持线程,但用户仍然可以通过线程库(如GNU Portable Threads)实现用户级线程。
【答案】B
【解析】应用程序...
登录后提交答案