进程调度时间计算方式
最新版linux3.10支持CFG調度策略
CFG調度時分配給每個進程的時間片是多少?
分配給進程的時間 = 總的cpu時間 * 進程的權重/就緒隊列(runqueue)所有進程權重之和
CFS調度器針對優先級又提出了nice值的概念,其實和權重是一一對應的關系。nice值就是一個具體的數字,取值范圍是[-20, 19]。數值越小代表優先級越大,同時也意味著權重值越大,nice值和權重之間可以互相轉換。內核提供了一個表格轉換nice值和權重。
const int sched_prio_to_weight[40] = {
/* -20 / 88761, 71755, 56483, 46273, 36291,
/ -15 / 29154, 23254, 18705, 14949, 11916,
/ -10 / 9548, 7620, 6100, 4904, 3906,
/ -5 / 3121, 2501, 1991, 1586, 1277,
/ 0 / 1024, 820, 655, 526, 423,
/ 5 / 335, 272, 215, 172, 137,
/ 10 / 110, 87, 70, 56, 45,
/ 15 */ 36, 29, 23, 18, 15,
};
數組的值可以看作是公式:weight = 1024 / 1.25nice計算得到。公式中的1.25取值依據是:進程每降低一個nice值,將多獲得10% cpu的時間。公式中以1024權重為基準值計算得來,1024權重對應nice值為0,其權重被稱為NICE_0_LOAD。默認情況下,
總結
以上是生活随笔為你收集整理的进程调度时间计算方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: writeline是什么意思_c语言co
- 下一篇: 学位评估 计算机课程教学案例,复旦大学业