【Linux 内核】调度器 ⑤ ( put_prev_task、set_next_task 函数 | select_task_rq 函数 | migrate_task_rq 函数 )
文章目錄
- 一、put_prev_task、set_next_task 函數(shù) ( 進程放入執(zhí)行隊列 )
- 二、select_task_rq 函數(shù) ( 為進程選擇 CPU )
- 三、migrate_task_rq 函數(shù) ( 將進程遷移到合適的 CPU 上 )
Linux 內(nèi)核源碼 linux-5.6.18\kernel\sched\sched.h 中 , 定義的 struct sched_class 調(diào)度類結(jié)構(gòu)體 , 就是 " 調(diào)度器 " 對應(yīng)的類 ;
一、put_prev_task、set_next_task 函數(shù) ( 進程放入執(zhí)行隊列 )
sched_class 調(diào)度類結(jié)構(gòu)體 中的 put_prev_task、set_next_task 函數(shù)指針 , 指向一個函數(shù) , 調(diào)用該函數(shù) , 可以將 " 進程 " , 加入到 " 執(zhí)行隊列 " 中 ;
- 進程 是一個 調(diào)度實體 ;
- 執(zhí)行隊列 是一個 紅黑樹 ;
源碼路徑 : linux-5.6.18\kernel\sched\sched.h#1724 ~ 1725 ;
二、select_task_rq 函數(shù) ( 為進程選擇 CPU )
sched_class 調(diào)度類結(jié)構(gòu)體 中的 select_task_rq 函數(shù)指針 , 指向一個函數(shù) , 調(diào)用該函數(shù) , 可以為 " 進程 " 選擇 合適的 CPU 執(zhí)行 ;
- 進程 是一個 調(diào)度實體 ;
- 執(zhí)行隊列 是一個 紅黑樹 ;
源碼路徑 : linux-5.6.18\kernel\sched\sched.h#1729 ;
三、migrate_task_rq 函數(shù) ( 將進程遷移到合適的 CPU 上 )
sched_class 調(diào)度類結(jié)構(gòu)體 中的 migrate_task_rq 函數(shù)指針 , 指向一個函數(shù) , 調(diào)用該函數(shù) , 可以將 " 進程 " 遷移到 合適的 CPU 上執(zhí)行 ;
- 進程 是一個 調(diào)度實體 ;
- 執(zhí)行隊列 是一個 紅黑樹 ;
源碼路徑 : linux-5.6.18\kernel\sched\sched.h#1730 ;
總結(jié)
以上是生活随笔為你收集整理的【Linux 内核】调度器 ⑤ ( put_prev_task、set_next_task 函数 | select_task_rq 函数 | migrate_task_rq 函数 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux 内核】调度器 ④ ( sc
- 下一篇: linux 其他常用命令