2

上下文切换是一个 O(1) 过程还是上下文切换量取决于各种可能影响它所花费时间的本地因素?

4

1 回答 1

3

不,有很多不同的原因。主要是在同一进程的两个线程之间切换上下文,以及在不同进程的两个线程之间切换上下文意味着地址空间的变化。更改地址空间对于缓存和内存来说始终是一项代价高昂的操作。在 x86 上,您需要重新加载页面目录,在 PowperPC 上,您需要使TLB无效并重新加载,...

从线程到内核时,更改地址空间不是强制性的。只是为了保持不变,我认为 Linux 总是加载内核地址空间(使用 PAE 工具并使用内核地址空间锁定 4 条目 PDBR 的条目,从 AS 上半部分开始,在 0xc0000000)。

于 2012-06-12T15:20:27.323 回答