日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

【Linux 内核】CFS 调度器 ① ( CFS 完全公平调度器概念 | CFS 调度器虚拟时钟 Virtual Runtime 概念 | 四种进程优先级 | 五种调度类 )

發布時間:2025/6/17 linux 36 豆豆

文章目錄

  • 一、CFS 調度器概念 ( 完全公平調度器 )
  • 二、CFS 調度器虛擬時鐘概念 ( Virtual Runtime )
  • 三、進程優先級 ( 調度優先級 | 靜態優先級 | 正常優先級 | 實時優先級 )
  • 四、調度類 ( 停機調度類 | 限期調度類 | 實時調度類 | 公平調度類 | 空閑調度類 )





一、CFS 調度器概念 ( 完全公平調度器 )



CFS 調度器 ( Completely Fair Scheduler ) " 完全公平調度器 " , " 完全公平調度算法 " 對每個 進程 都是 公平 的 ,

" 完全公平調度算法 "基于時間片輪詢 的 調度算法 ,

每個進程 都會獲得一段 相同的大小的 CPU 時間片 來運行 ;


CFS 調度器 沒有 時間片概念 , 該調度器會 公平地 分配 CPU 的使用時間 ;


舉例說明 : 如果有 444 個相同 優先級 的進程運行在 同一個 CPU 上 , 每個進程都會被 公平 分配到 25%25\%25% 的運行時間 ;





二、CFS 調度器虛擬時鐘概念 ( Virtual Runtime )



CFS 調度器 中 , 定義了 一種 " 調度模型 " , 該 模型 為 CFS 執行隊列 cfs_rq 中的 每個進程 都設置了 虛擬時鐘 Virtual Runtime ;

被設置了 虛擬時鐘 的進程 , 執行 nnn 時長后 , 其 虛擬時鐘 會增加 nnn 時長 , 其它 沒有執行的進程 虛擬時鐘 值保持不變 ;





三、進程優先級 ( 調度優先級 | 靜態優先級 | 正常優先級 | 實時優先級 )



參考 【Linux 內核】進程管理 - 進程優先級 ② ( prio 調度優先級 | static_prio 靜態優先級 | normal_prio 正常優先級 | rt_priority 實時優先級 ) 博客 ,

在 linux-5.6.18\include\linux\sched.h 頭文件中 task_struct " 進程描述符 " 結構體 中定義了 進程優先級字段如下 :

int prio; // 調度優先級int static_prio; // 靜態優先級int normal_prio; // 正常優先級unsigned int rt_priority; // 實時優先級

進程優先級限期進程實時進程普通進程
prio 調度優先級等于 normal_prio 字段等于 normal_prio 字段等于 normal_prio 字段
static_prio 調度優先級字段 值總為 000 , 沒有意義字段 值總為 000 , 沒有意義120+nice\rm 120 + nice120+nice , 其數值越小 , 優先級越高
normal_prio 正常優先級 ?1-1?199?rt_priority99 - \rm rt\_priority99?rt_priority120+nice\rm 120 + nice120+nice , 其數值越小 , 優先級越高
rt_priority 實時優先級字段 值總為 000 , 沒有意義字段 值為 111 ~ 999999 , 其數值越大 , 優先級越高字段 值總為 000 , 沒有意義




四、調度類 ( 停機調度類 | 限期調度類 | 實時調度類 | 公平調度類 | 空閑調度類 )



在 linux-5.6.18\include\linux\sched.h 頭文件中 task_struct " 進程描述符 " 結構體 中定義的 sched_class 字段 ,

表示該進程所屬的調度類 ;

const struct sched_class *sched_class;

源碼地址 : linux-5.6.18\include\linux\sched.h#680


上述可設置的調度類參考 【Linux 內核】調度器 ⑦ ( 調度器類型 | 停機調度類 stop_sched_class | 限期調度類 dl_sched_class | 實時調度類 | 公平調度類 | 空閑調度類 ) 博客 , 在 Linux 內核中 , sched_class 調度器 分為以下 555 種類型 :

  • stop_sched_class : 停機調度類 ;
  • dl_sched_class : 限期調度類 ;
  • rt_sched_class : 實時調度類 ;
  • fair_sched_class : 公平調度類 ;
  • idle_sched_class : 空閑調度類 ;

調度類 優先級 由高到低排列為 : 停機調度類 > 限期調度類 > 實時調度類 > 公平調度類 > 空閑調度類

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的【Linux 内核】CFS 调度器 ① ( CFS 完全公平调度器概念 | CFS 调度器虚拟时钟 Virtual Runtime 概念 | 四种进程优先级 | 五种调度类 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。