我知道 这里 有一个关于这个问题的解释。但是我对其中的一些点还感到困惑 -:
假设我有线程 T(1-a) 和 T(1-b) 属于进程 P1,线程 T(2-a) 和 T(2-b) 属于进程 P2。
现在我的问题是 -:
- 线程 T(1-a) 想要进行上下文切换到线程 T(1-b)。根据 这个 回答,
这两种类型(进程上下文切换和线程上下文切换)都涉及将控制权交给操作系统内核来执行上下文切换(我主要说的是线程上下文切换)。
疑问
如果 T(1-a) 和 T(1-b) 是用户级线程,则内核将无法区分 T(1-a) 和 T(1-b),那么如何进行上下文切换?
- 假设所有线程 T(1-a)、T(1-b)、T(2-a) 和 T(2-b) 都是内核级线程,如果线程 T(1-a) 想要上下文切换到 T(2-b)。
疑问
成本/延迟不会与进程上下文切换的成本/延迟相同,因为不仅虚拟内存空间会改变,而且 TLB 也会被清除吗?