【Linux 内核】进程优先级与调度策略 ② ( 获取调度策略对应的进程优先级函数 | sched_get_priority_max 函数 | sched_get_priority_min 函数 )
文章目錄
- 一、獲取進程優先級函數
- 二、調度策略參數
- 三、進程優先級說明
在上一篇博客 【Linux 內核】進程優先級與調度策略 ① ( SCHED_FIFO 調度策略 | SCHED_RR 調度策略 | 進程優先級 ) 中 , 簡單介紹了 " 進程調度策略 " 與 " 進程優先級 " 概念 , 本篇博客開始繼續介紹進程調度的代碼細節 ;
一、獲取進程優先級函數
Linux 內核中 , 通過下面 222 個函數 , 可以獲取進程的 " 優先級最大值 “ 和 ” 優先級最小值 " ;
獲取 實時進程 優先級最大值 函數 : 傳入調度策略 對應的宏定義 ;
int sched_get_priority_max(int policy)獲取 實時進程 優先級最小值 函數 : 傳入調度策略 對應的宏定義 ;
int sched_get_priority_min(int policy)調度策略參數參考 【Linux 內核】調度器 ⑨ ( Linux 內核調度策略 | SCHED_NORMAL 策略 | SCHED_FIFO 策略 | SCHED_NORMAL 策略 | SCHED_BATCH策略 ) 博客 ;
二、調度策略參數
上述兩個函數 , 傳入的調度策略參數 , 在 Linux 內核源碼中的 linux-5.6.18\include\uapi\linux\sched.h 頭文件中定義 ;
/** 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調度策略源碼參考 【Linux 內核】調度器 ⑨ ( Linux 內核調度策略 | SCHED_NORMAL 策略 | SCHED_FIFO 策略 | SCHED_NORMAL 策略 | SCHED_BATCH策略 ) 博客 ;
三、進程優先級說明
SCHED_OTHER 進程調度策略 不支持進程優先級機制 ;
SCHED_FIFO 和 SCHED_RR 進程調度策略 , 支持 進程優先級機制 , 進程優先級取值 111 ~ 999999 , 優先級數值越大 , 優先級越高 ;
SCHED_FIFO 、SCHED_RR 實時調度策略 , 進程優先級最大值為 999999
SCHED_NORMAL、SCHED_BATCH、SCHED_IDLE 普通調度策略 , 調用獲取進程優先級函數 , 得到的結果始終為 000 . 是 普通任務調度函數 ;
進程優先級參考 【Linux 內核】調度器 ⑨ ( Linux 內核調度策略 | SCHED_NORMAL 策略 | SCHED_FIFO 策略 | SCHED_NORMAL 策略 | SCHED_BATCH策略 ) 博客 ;
總結
以上是生活随笔為你收集整理的【Linux 内核】进程优先级与调度策略 ② ( 获取调度策略对应的进程优先级函数 | sched_get_priority_max 函数 | sched_get_priority_min 函数 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux 内核】SMP 对称多处理器
- 下一篇: 【Linux 内核】进程优先级与调度策略