linux調(diào)度類:
一共有5個(gè)調(diào)度類, 每個(gè)進(jìn)程都對(duì)應(yīng)一種調(diào)度策略, 每種策略又會(huì)對(duì)應(yīng)一種調(diào)度類(每個(gè)調(diào)度類可以對(duì)應(yīng)多種調(diào)度策略)
extern const struct sched_class stop_sched_class;
extern const struct sched_class dl_sched_class;
extern const struct sched_class rt_sched_class;
extern const struct sched_class fair_sched_class;
extern const struct sched_class idle_sched_class;
rt_sched_class: 實(shí)時(shí)調(diào)度器(調(diào)度策略: SCHED_FIFO, SCHED_RR)
fair_sched_class: 完全公平調(diào)度器(調(diào)度策略: SCHED_NORMAL, SCHED_BATCH, SCHED_IDLE)
調(diào)度類優(yōu)先級(jí)順序: stop_sched_class>dl_sched_class>rt_sched_class>fair_sched_class>idle_sched_class
調(diào)度策略:
struct task中 unsigned int policy 保存進(jìn)程的調(diào)度策略
SCHED_NORMAL: 用于普通進(jìn)程, 通過(guò)CFS調(diào)度器實(shí)現(xiàn)
SCHED_BATCH: 相當(dāng)于SCHED_NORMAL分化版本, 采用分時(shí)策略, 根據(jù)動(dòng)態(tài)優(yōu)先級(jí), 分配CPU運(yùn)行需要的資源
SCHED_IDLE: 優(yōu)先級(jí)最低, 在系統(tǒng)空閑時(shí)才執(zhí)行這類進(jìn)程
SCHED_FIFO: 先進(jìn)先出調(diào)度算法(實(shí)時(shí)調(diào)度策略), 相同優(yōu)先級(jí)任務(wù)先到先服務(wù), 高優(yōu)先級(jí)的任務(wù)可以搶占低優(yōu)先級(jí)的任務(wù).
SCHED_RR: 輪流調(diào)度算法(實(shí)時(shí)調(diào)度策略)
SCHED_DEADLINE: 新支持的實(shí)時(shí)進(jìn)程調(diào)度策略, 針對(duì)突發(fā)性計(jì)算
SCHED_BATCH用于非交互處理器消耗型進(jìn)程, SCHED_IDLE是在系統(tǒng)負(fù)載很低時(shí)使用CFS
/*
- Scheduling policies
*/
define SCHED_NORMAL 0
define SCHED_FIFO 1
define SCHED_RR 2
define SCHED_BATCH 3
/* SCHED_ISO: reserved but not implemented yet */
define SCHED_IDLE 5
define SCHED_DEADLINE 6
CFS調(diào)度
CFS調(diào)度器(1)—— 基本原理
https://www.cnblogs.com/hellokitty2/p/13171709.html
CFS調(diào)度器(2)——源碼解析
http://t.zoukankan.com/hellokitty2-p-13195256.html
linux內(nèi)核源碼分析之CFS調(diào)度
https://blog.csdn.net/WANGYONGZIXUE/article/details/123456109
帶你玩轉(zhuǎn)linux內(nèi)核源碼分析之CFS調(diào)度
https://www.bilibili.com/read/cv16902712
Linux進(jìn)程調(diào)度-CFS調(diào)度器原理分析及實(shí)現(xiàn),懂了
https://zhuanlan.zhihu.com/p/395810060
操作系統(tǒng)調(diào)度算法3——CFS,完全公平調(diào)度器
https://zhuanlan.zhihu.com/p/372441187
Linux進(jìn)程調(diào)度源碼學(xué)習(xí)之調(diào)度策略與調(diào)度類工作流程
https://blog.csdn.net/xsjzn/article/details/124721909