我們都希望在調度時,任務按照相同的進展比例進行,這樣才公平,誰也不多干,誰也不少干,例如A完成了50%,B也應該完成50%,這個完成的百分比實際上就是“實際分配時間/應該分配時間”,
在加權的情況下,任務按照加權比例同時進行 ,例如A行程權重2,B行程權重1,A行程完成50%,B行程應該完成25%,加權后的實際分配的時間= ( 調度的總時間 * 該行程權重 )/總權重
那么我們就可以得到公式
A行程實際分配時間 / B應該分配時間 = (調度的總時間*A行程權重)/(總權重*A行程應該分配時間)
B行程實際分配時間 / B應該分配時間 = (調度的總時間*B行程權重)/(總權重*B行程應該分配時間)
如果公平的話,就是兩者盡量相等,假設上面的兩個等式對等,我們就可以得到
(A行程分配的時間*G)/(A行程權重)=(B行程分配的時間*G)/(B行程權重)
G為常量
是不是linux cfs調度器的虛擬時鐘的計算方式好像:
virtime= 該行程分配的時間 * NICE_0_LOAD /當前行程的權重
已上是我的個人理解,如果不對,請指出,謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/197282.html
標籤:python
下一篇:【筆記】前端面試必備技巧——概述
