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