【Linux 内核】调度器 ⑥ ( task_woken 函数 | set_cpus_allowed 函数 | rq_online 函数 | rq_offline 函数 )
文章目錄
- 一、task_woken 函數(shù) ( 喚醒阻塞進(jìn)程 )
- 二、set_cpus_allowed 函數(shù) ( 修改進(jìn)程在 CPU 中的親和力 )
- 三、rq_online 函數(shù) ( 啟動(dòng)執(zhí)行隊(duì)列 )
- 四、rq_offline 函數(shù) ( 禁止執(zhí)行隊(duì)列 )
Linux 內(nèi)核源碼 linux-5.6.18\kernel\sched\sched.h 中 , 定義的 struct sched_class 調(diào)度類結(jié)構(gòu)體 , 就是 " 調(diào)度器 " 對(duì)應(yīng)的類 ;
一、task_woken 函數(shù) ( 喚醒阻塞進(jìn)程 )
sched_class 調(diào)度類結(jié)構(gòu)體 中的 task_woken 函數(shù)指針 , 指向一個(gè)函數(shù) , 調(diào)用該函數(shù) , 可以將 休眠或阻塞中的 " 進(jìn)程 " 喚醒 ;
- 進(jìn)程 是一個(gè) 調(diào)度實(shí)體 ;
- 執(zhí)行隊(duì)列 是一個(gè) 紅黑樹 ;
源碼路徑 : linux-5.6.18\kernel\sched\sched.h#1732 ;
二、set_cpus_allowed 函數(shù) ( 修改進(jìn)程在 CPU 中的親和力 )
sched_class 調(diào)度類結(jié)構(gòu)體 中的 set_cpus_allowed 函數(shù)指針 , 指向一個(gè)函數(shù) , 調(diào)用該函數(shù) , 可以修改 " 進(jìn)程 " 在 CPU 中的 " 親和力 " ;
- 進(jìn)程 是一個(gè) 調(diào)度實(shí)體 ;
- 執(zhí)行隊(duì)列 是一個(gè) 紅黑樹 ;
源碼路徑 : linux-5.6.18\kernel\sched\sched.h#1734 ;
三、rq_online 函數(shù) ( 啟動(dòng)執(zhí)行隊(duì)列 )
sched_class 調(diào)度類結(jié)構(gòu)體 中的 rq_online 函數(shù)指針 , 指向一個(gè)函數(shù) , 調(diào)用該函數(shù) , 可以 啟動(dòng) 執(zhí)行隊(duì)列 ;
- 進(jìn)程 是一個(gè) 調(diào)度實(shí)體 ;
- 執(zhí)行隊(duì)列 是一個(gè) 紅黑樹 ;
源碼路徑 : linux-5.6.18\kernel\sched\sched.h#1737 ;
四、rq_offline 函數(shù) ( 禁止執(zhí)行隊(duì)列 )
sched_class 調(diào)度類結(jié)構(gòu)體 中的 rq_offline 函數(shù)指針 , 指向一個(gè)函數(shù) , 調(diào)用該函數(shù) , 可以 禁止 執(zhí)行隊(duì)列 ;
- 進(jìn)程 是一個(gè) 調(diào)度實(shí)體 ;
- 執(zhí)行隊(duì)列 是一個(gè) 紅黑樹 ;
源碼路徑 : linux-5.6.18\kernel\sched\sched.h#1738 ;
總結(jié)
以上是生活随笔為你收集整理的【Linux 内核】调度器 ⑥ ( task_woken 函数 | set_cpus_allowed 函数 | rq_online 函数 | rq_offline 函数 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux 内核】调度器 ⑤ ( pu
- 下一篇: 【Linux 内核】CFS 调度器 ①