星海

操作系统 · 单选题 · 第 25 题

计算机基础面试八股 · 第 25 题

为什么同一进程内的线程切换,通常比不同进程之间的切换开销小?

  1. A线程切换时不需要保存和恢复任何寄存器,只要改一下程序计数器
  2. B进程切换完全在用户态完成,而线程切换必须进入内核态才能进行
  3. C线程切换不需要切换地址空间(页表),TLB 和缓存也不容易失效
  4. D线程切换会清空整个 TLB,换来更快的后续地址转换,所以更划算

答案

C C. 线程切换不需要切换地址空间(页表),TLB 和缓存也不容易失效

解析

进程切换要换页表,随之 TLB 失效、缓存命中率下降,这部分间接开销往往比保存寄存器本身更大。同进程的线程共享地址空间,只需保存和恢复寄存器、栈指针等上下文。线程切换同样要保存寄存器,内核级线程的切换也要进入内核态。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。