的成本從http://lkml.indiana.edu/hypermail/linux/kernel/0103.1/0030.html我瞭解在Linux的新型互斥的,一個adaptive_np之一:Linux內核:立即descheduling
的PTHRED_MUTEX_ADAPTIVE_NP是一個新的 互斥鎖其用於高 吞吐量公平性甚至CPU週期的犧牲。這個 互斥體不會將所有權轉讓給 等待線程,而是允許 競爭。另外,通過SMP內核, 鎖定操作使用旋轉到 重試鎖定以避免 立即重新調度的成本。
有人提到「立即重新排期的費用」。這個成本是多少? (根據cpu ticks; TLB,TSS,smth else reloading)在內核之間在「立即重新調度請求」和重新調度再次返回運行狀態之間做了什麼?
我該如何做一個明確的descheduling,我怎麼測量它的成本?
從我所瞭解的情況來看,它更受'服務時忽視'而不是'避免'。父母的優先權(AFAIK)仍然參與其中。 它應該是大型SMP機器上futex地獄的答案。讓內核進行仲裁而不實際進行仲裁,或者實現這種效果。 在任何情況下,都只需+1即可。 –
上下文切換有多重要?重新安排計算程序有多重? 正如我所想,yield()不會立即啓動其他線程,但會等待「sched tick」,1s/HZ = 1毫秒 – osgx