进程之间的上下文切换是否对所有进程(恒定时间)花费相同的时间,或者上下文切换时间取决于各种不同的本地因素,这些因素因进程而异(如进程大小,堆栈大小等)?
编辑: 假设OS和硬件是固定的,意味着在给定的OS和hwd中时间相同。环境?
答案 0 :(得分:1)
它随硬件和OS /进程而变化:(要从不同的进程运行线程,必须交换内存管理上下文,浮点上下文等。这在某些硬件上比其他硬件更容易/更快。
驱动程序处理硬件所需的时间差异很大,并且表明线程应该运行的操作系统 - 这是另一个复杂因素。
在某些情况下,这样的交换可能需要抢占在另一个核心上运行的线程的抢占,而不是接收到启动交换的硬件/软件中断的核心。这比在同一处理器上交换上下文要花费更长的时间。
很难想出任何关于此的平均数字。你会从哪里得到它 - 启动进程间线程交换的驱动程序中断或从驱动程序进入调度程序的入口?
因此,总的来说,我们可能会同意这需要一些时间,而且可能会有所不同。