【发布时间】:2013-01-07 22:10:20
【问题描述】:
哪个需要更长的时间?
在用户模式和内核模式之间切换(或)在两个进程之间切换?
请解释原因。
编辑:我知道,每当发生上下文切换时,调度程序需要一些时间来保存其 PCB 中前一个进程的状态,然后从其重新加载下一个进程对应的PCB。对于用户模式和内核模式之间的切换,我知道必须更改模式位。这不是全部,还是还有更多?
【问题讨论】:
-
这对我来说听起来像是一个家庭作业问题......
-
不是真的......我正在为我的硕士入学考试学习:)
-
较新的处理器优化了
sysenter/exit指令,以实现更快的用户/内核切换。进程之间的上下文切换也意味着切换页表和刷新缓存和 TLB。 -
好吧,我认为,由于内核有助于从一个进程切换到下一个进程,因此答案可能相当明显。毕竟,您需要从用户空间切换到内核模式,以便调度程序(它是内核的一部分)进行控制,然后,在它做出决定之后,您可以在新进程中从内核切换到用户空间。 .. 因此,从进程切换到进程的时间可能至少是用户到内核的两倍,至少在一般情况下是这样……
-
嗯,看起来是错误的假设。这不像用户代码启动从进程到进程的切换。然后开关本身可能是系统调用中阻塞的进程,即已经在内核模式下运行。