我对用户/内核线程和模式/上下文切换感到困惑(平台:Linux)
我有两个相关的问题。
(1)下列句子正确的是?
如果我进行系统调用,则会发生模式切换(用户模式到内核模式),并最终从用户线程切换到内核线程。
由于系统调用只能在内核线程中执行,因此我认为模式切换必须发生从用户线程到内核线程的切换。
(2) 那么,我们所说的模式切换开销就是用户线程到内核线程的切换开销吗?会有哪些类型的开销?
据我所知,
1)上下文切换是CPU从一个进程或线程到另一个进程或线程的切换,并且仅发生在内核模式下。
2)调用模式切换(而不是上下文切换)的原因是当前正在执行的进程在模式切换期间不会改变。
3)进程上下文切换的开销比线程上下文切换的开销大。
(1)下列句子正确的是?
如果我进行系统调用,则会发生模式切换(用户模式到内核模式),并最终从用户线程切换到内核线程。
Yes
(2) 那么,我们所说的模式切换开销就是用户线程到内核线程的切换开销吗?会有哪些类型的开销?
保存寄存器、更改段选择器等。好答案 https://stackoverflow.com/a/2484895/5247040对于这个问题
模式切换(用户线程到内核线程)和线程上下文切换(内核线程到内核线程)之间有什么大区别?
我认为在将内核线程切换到内核线程的情况下,段选择器是相同的,也许还有一些寄存器。它依赖于架构
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)