Process 上下文切换时间

Process 上下文切换时间,process,operating-system,switching,Process,Operating System,Switching,进程之间的上下文切换是否需要所有进程的相同时间(恒定时间)或上下文切换时间取决于不同进程之间的各种局部因素(如进程大小、堆栈大小等) 编辑: 假设操作系统和硬件是固定的,这意味着在给定的操作系统和硬件配置中时间是相同的。环境?它随硬件和操作系统/进程的不同而不同:(要从不同的进程运行线程,必须交换内存管理上下文、浮点上下文等。在某些硬件上,这比在其他硬件上更容易/更快 驱动程序在处理硬件和向操作系统发出线程应该运行的信号所花费的时间上差异很大,所以这是另一个复杂问题 在某些情况下,这种交换可能需

进程之间的上下文切换是否需要所有进程的相同时间(恒定时间)或上下文切换时间取决于不同进程之间的各种局部因素(如进程大小、堆栈大小等)

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

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

驱动程序在处理硬件和向操作系统发出线程应该运行的信号所花费的时间上差异很大,所以这是另一个复杂问题

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

在这方面很难得出任何一种平均数字。你会从何处计算时间-启动进程间线程交换的驱动程序中断,还是从驱动程序到调度程序的条目


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

在给定的硬件和操作系统上……它会是恒定的吗?……我的意思是,如果硬件和操作系统是固定的,那么切换时间应该是恒定的吗?不,不是在桌面操作系统上。如果将被抢占的线程运行在不同的内核上,而不是在被抢占的内核上通过调度程序处理请求交换的中断时,必须使用一些昂贵的线程间通信来停止运行另一个线程的内核,以便可以使用内核来运行新准备好的线程。如果有单内核,则时间将是相同的?因为不会有任何昂贵的通信。一般来说,它仍然会有很大的变化。请继续e thing-线程在另一个进程中所需的代码和/或数据可能已被分页。这是两个不同的问题-您不能将它们与“或”结合起来:)此外,“quantum”一词不应进入任何操作系统调度的讨论。它强烈建议线程只能运行一组离散的时间间隔。自60年代末以来,大多数操作系统都不是这样工作的。如果您想要获得担保,您必须使用提供担保的实时操作系统:(还要记住缓存。在所有其他条件相同的情况下,如果一个进程的数据结构在缓存中,而另一个进程的数据结构不在缓存中,那么您将花费额外的周期将它们从主存带到缓存中。@Alex-如果数据实际上在主存中,这是正确的。如果它已被调出。。