.net 上下文切换时间是否包含在线程量子时间中?
我的意思是,如果线程的量子时间是20毫秒,那么在上下文切换中会花费15毫秒,在执行时会花费5毫秒?这是一个实现细节.net 上下文切换时间是否包含在线程量子时间中?,.net,multithreading,context-switch,.net,Multithreading,Context Switch,我的意思是,如果线程的量子时间是20毫秒,那么在上下文切换中会花费15毫秒,在执行时会花费5毫秒?这是一个实现细节 Linux上的情况是,当进程/线程调度器将CPU分配给线程时,该线程被认为正在运行。它执行的从内核模式切换回用户模式的代码被视为代表该进程/线程执行的内核代码,因此上下文切换时间被视为线程/进程运行时。我将转储平均花费75%时间切换上下文的任何操作系统。我只希望当许多优先级较高的线程通过I/O中断/信号以不幸、快速的顺序准备就绪,从而导致就绪线程集中的“顺序”更改时,才会在可传递的
Linux上的情况是,当进程/线程调度器将CPU分配给线程时,该线程被认为正在运行。它执行的从内核模式切换回用户模式的代码被视为代表该进程/线程执行的内核代码,因此上下文切换时间被视为线程/进程运行时。我将转储平均花费75%时间切换上下文的任何操作系统。我只希望当许多优先级较高的线程通过I/O中断/信号以不幸、快速的顺序准备就绪,从而导致就绪线程集中的“顺序”更改时,才会在可传递的基础上产生这样的负载 最好是开发人员/海报在提到抢占式内核时不再经常使用“quantum”和“time slice”等术语。除了在严重过载的盒子上,滴答声中断只在超时其他阻塞调用和休眠间隔时有用 到底是谁想出了“量子”这个词?“量子”是不可分割的,而99.9%的家庭线程大部分时间都在等待I/O或其他线程,运行时间少于滴答周期,当它们准备就绪时,会立即分配一个内核并使其运行,并且几乎不会因为“时间片”的出现而被偷窥
“时间片”听起来像是60年代的东西,而不是2012年的抢占式内核对驱动程序中断/信号做出快速响应,并立即使等待的线程准备就绪/运行 在.NET中没有“上下文切换”这样的东西,因为.NET不是一个操作系统,而且 所有这些与线程相关的CLR库都只是操作系统API的包装器
所以问题应该是:在Windows上切换上下文需要多长时间?我想这取决于实现细节 操作系统概念的第十版Silberschartz,Gagne,Galvin在解释循环调度第210页时说: CPU调度程序从就绪队列中选取第一个进程,将计时器设置为在1个时间段后中断,并调度该进程 其中,第203页定义的派送流程包括: 上下文切换 切换到用户模式 跳转到PC 还有一些语句指示上下文开关包含在量程或时间片中。例如,在RR中,它再次表示: 每个进程必须等待不超过n-1 x q时间单位,直到其下一个量子
你知道使用.NET线程池进行上下文切换花了多少时间吗?我没说75%。这些数字只是一个例子。我想知道上下文切换时间是否是给线程的执行时间的一部分?在.Net中进行上下文切换需要多长时间?