2012-06-27 45 views

回答

0

我會轉儲平均花費75%的時間上下文切換的操作系統。當許多優先級線程通過I/O中斷/信號以不幸,快速的順序準備就緒並因此導致就緒線程集合中的「順序」更改時,我只希望在傳遞基礎上實現這樣的負載。

如果開發者/海報在引用先發制人的內核時經常使用像'量子'和'時間片'這樣的術語,那就更好了。除了嚴重超載的盒子外,刻度中斷僅用於超時其他阻塞呼叫和休眠間隔。

無論如何,誰來想出'量子'這個術語呢?一個'量子'是不可分割的,而99.9%的家庭線程在大多數時間都在等待I/O或者彼此等待,運行時間小於滴答週期,立即被分配一個核心並在他們準備就緒時運行並且幾乎沒有經歷過因爲他們的「時間片」而被剝奪的經歷。

'時間片'聽起來像60年代的東西,而不是2012年,搶先內核對驅動程序中斷/信號作出快速響應,並立即使那些正在等待就緒/運行的線程。

+0

我沒有說過75%。數字只是例如。我想知道上下文切換時間是給線程執行時間的一部分嗎?在.Net中上下文切換需要多長時間? – theateist

0

這是一個實現細節。

Linux上發生的情況是,當進程/線程調度程序將一個CPU分配給一個線程時,該線程被認爲正在運行。它執行的從內核模式切換回用戶模式的代碼被視爲代表該進程/線程執行的內核代碼,因此上下文切換時間被視爲線程/進程運行時間。

+0

做了多少時間用於上下文切換使用.NET ThreadPool例如? – theateist

0

因爲.NET不是一個操作系統,所以那些線程相關的CLR庫都只是OS API的包裝,所以沒有'.NET中的Context Switch'這樣的東西。

所以這個問題應該是這樣的:「在Windows上進行上下文切換需要多長時間?」

相關問題