模式切换是否发生从用户线程切换到内核线程?

2024-03-29

我对用户/内核线程和模式/上下文切换感到困惑(平台:Linux)
我有两个相关的问题。

(1)下列句子正确的是?

如果我进行系统调用,则会发生模式切换(用户模式到内核模式),并最终从用户线程切换到内核线程。

由于系统调用只能在内核线程中执行,因此我认为模式切换必须发生从用户线程到内核线程的切换。

(2) 那么,我们所说的模式切换开销就是用户线程到内核线程的切换开销吗?会有哪些类型的开销?


据我所知,
1)上下文切换是CPU从一个进程或线程到另一个进程或线程的切换,并且仅发生在内核模式下。
2)调用模式切换(而不是上下文切换)的原因是当前正在执行的进程在模式切换期间不会改变。
3)进程上下文切换的开销比线程上下文切换的开销大。



(1)下列句子正确的是?

如果我进行系统调用,则会发生模式切换(用户模式到内核模式),并最终从用户线程切换到内核线程。

Yes

(2) 那么,我们所说的模式切换开销就是用户线程到内核线程的切换开销吗?会有哪些类型的开销?

保存寄存器、更改段选择器等。好答案 https://stackoverflow.com/a/2484895/5247040对于这个问题

模式切换(用户线程到内核线程)和线程上下文切换(内核线程到内核线程)之间有什么大区别?

我认为在将内核线程切换到内核线程的情况下,段选择器是相同的,也许还有一些寄存器。它依赖于架构

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

模式切换是否发生从用户线程切换到内核线程? 的相关文章

随机推荐