很多时候,我读到/听到这样的论点,即进行大量系统调用等会效率低下,因为应用程序进行了模式切换,即从用户模式切换到内核模式,并且在执行系统调用后开始在用户模式下执行再次切换模式。
我的问题是模式切换的开销是多少?cpu 缓存是否失效或 tlb 条目被刷新或发生什么导致开销?
请注意,我问的是模式切换而不是上下文切换所涉及的开销。我知道模式切换和上下文切换是两个不同的东西,我完全了解与上下文切换相关的开销,但我不明白模式切换会导致什么开销?
如果可能,请提供一些关于特定 *nix 平台的信息,如 Linux、FreeBSD、Solaris 等。
问候
拉里