1. 程式人生 > >CFS排程器

CFS排程器


CFS又稱完全公平排程策略,只針對普通程序,不針對RT程序。內部實現使用紅黑樹,左節點的值小於右節點。

紅黑樹節點的值為vruntime(程序的虛擬執行時間)

vruntime=pruntime*NICE_0_LOAD/weight

pruntime:物理執行時間

weight:權重

NICE_0_LOAD:引數,1024,nice為0時的權重值

CFS排程策略

  1. RT程序都睡眠或者執行時間超時
  2. 開始排程普通程序
  3. 最先排程vruntime最小的程序,也就是紅黑樹最左邊的程序,此程序為P1
  4. 隨著P1的執行,P1的pruntime會增加,於是P1的vruntime
    增加,P1程序在紅黑樹上右移。P1的優先順序下降,這時候會出現另一個vruntime最小的程序,則排程到這個新的程序。
  5. 若突然出現RT程序,則RT程序會立即被排程

pruntime小意味著是IO消耗型程序,weight大意味著nice值小,優先順序高



chrt設定排程策略和優先順序,nice和renice設定程序的nice值。