进程之间的上下文切换对于所有进程是否花费相同的时间(恒定时间),或者上下文切换时间取决于各种本地因素,这些因素因进程而异(如进程大小、堆栈大小等)?
编辑:假设操作系统和硬件是固定的,这意味着在给定的操作系统和hwd中时间是相同的。环境?
发布于 2012-04-29 20:13:29
它因硬件和操作系统/进程而异:(要从不同的进程运行线程,必须交换内存管理上下文、浮点上下文等。在某些硬件上,这比其他硬件更容易/更快。
驱动程序在处理硬件和通知操作系统线程应该运行的时间上差异很大-所以这是另一个复杂的问题。
在某些情况下,这样的交换可能需要在另一个核上运行的线程的抢占,而不是在接收到发起该交换的硬件/软件中断的核上运行的线程的抢占。这比在同一处理器上交换上下文所需的时间长得多。
这很难得出任何形式的平均数字。你会从哪里开始计时--启动进程间线程交换的驱动程序中断,还是从驱动程序到调度程序的入口?
因此,总的来说,我们可能会同意这需要一些时间,而且可能会有所不同。
https://stackoverflow.com/questions/10371914
复制相似问题