2

进程之间的上下文切换是否对所有进程(恒定时间)花费相同的时间,或者上下文切换时间取决于因进程而异的各种本地因素(如进程大小、堆栈大小等)?

编辑:假设操作系统和硬件是固定的,意味着给定操作系统和硬件的时间相同。环境 ?

4

1 回答 1

1

它因硬件以及操作系统/进程而异:(要从不同的进程运行线程,必须交换内存管理上下文、浮点上下文等。这在某些硬件上比其他硬件更容易/更快。

驱动程序在处理硬件和向操作系统发出一个线程应该运行的信号时差异很大 - 所以这是另一个复杂因素。

在某些情况下,这样的交换可能需要抢占在另一个内核上运行的线程,而不是接收到启动交换的硬件/软件中断的内核。这比在同一处理器上交换上下文花费的时间要长得多。

在这方面很难得出任何平均数字。您将从哪里开始计时 - 启动进程间线程交换的驱动程序中断或从驱动程序到调度程序的条目?

因此,总的来说,我们可能会同意这需要一些时间并且可能会有所不同。

于 2012-04-29T12:13:29.467 回答