【Linux 内核】CFS 调度器 ④ ( 调度子系统组件模块 | 主调度器、周期性调度器 | 调度器类 )
文章目錄
- 一、調(diào)度子系統(tǒng)組件模塊
- 二、主調(diào)度器、周期性調(diào)度器
- 三、調(diào)度器類
一、調(diào)度子系統(tǒng)組件模塊
調(diào)度器 需要對 被調(diào)度的進(jìn)程 進(jìn)行 排序 和 調(diào)度管理 ,
進(jìn)程管理過程需要 調(diào)度器 的 組件模塊 , 以及相關(guān) 算法 數(shù)據(jù)結(jié)構(gòu) 來完成 , 如 : 執(zhí)行隊列 ;
二、主調(diào)度器、周期性調(diào)度器
CPU 通過 " 上下文切換 " 選擇 " 主調(diào)度器 " 或 " 周期性調(diào)度器 " ,
" 上下文切換 " 主要完成
- 切換地址空間 ,
- 切換寄存器 ,
- 切換棧空間
工作 ;
" 主調(diào)度器 " 通過 調(diào)用 schedule() 方法 , 完成 進(jìn)程的 調(diào)度 和 切換 ;
" 周期性調(diào)度器 " 根據(jù) 相應(yīng)頻率 , 自動調(diào)用 scheduler_tick() 函數(shù) , 完成調(diào)度 , 這是根據(jù) 進(jìn)程 運行時間 , 自動觸發(fā)進(jìn)程調(diào)度 ;
三、調(diào)度器類
主調(diào)度器 或 周期性調(diào)度器 根據(jù) 不同的 " 選擇進(jìn)程 " 選擇不同的 調(diào)度器類 , 可選的調(diào)度類參考 【Linux 內(nèi)核】調(diào)度器 ⑦ ( 調(diào)度器類型 | 停機調(diào)度類 stop_sched_class | 限期調(diào)度類 dl_sched_class | 實時調(diào)度類 | 公平調(diào)度類 | 空閑調(diào)度類 ) 博客 , 在 Linux 內(nèi)核中 , sched_class 調(diào)度器 分為以下 555 種類型 :
- stop_sched_class : 停機調(diào)度類 ;
- dl_sched_class : 限期調(diào)度類 ;
- rt_sched_class : 實時調(diào)度類 ;
- fair_sched_class : 公平調(diào)度類 ;
- idle_sched_class : 空閑調(diào)度類 ;
每個 調(diào)度器類 都負(fù)責(zé) 調(diào)度管理 若干進(jìn)程 ,
調(diào)度器類 用于 判斷 下一步要運行哪個進(jìn)程 ,
總結(jié)
以上是生活随笔為你收集整理的【Linux 内核】CFS 调度器 ④ ( 调度子系统组件模块 | 主调度器、周期性调度器 | 调度器类 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux 内核】CFS 调度器 ②
- 下一篇: 【Linux 内核】CFS 调度器 ⑤