【Linux 内核】进程管理 - 进程优先级 ② ( prio 调度优先级 | static_prio 静态优先级 | normal_prio 正常优先级 | rt_priority 实时优先级 )
文章目錄
- 一、進程優先級相關字段
- 1、prio 字段 ( 調度優先級 )
- 2、static_prio 字段 ( 靜態優先級 )
- 3、normal_prio 字段 ( 正常優先級 )
- 4、rt_priority 字段 ( 實時優先級 )
- 二、三種進程的四種優先級總結
一、進程優先級相關字段
在 linux-5.6.18\include\linux\sched.h 頭文件中 task_struct " 進程描述符 " 結構體 中定義了 進程優先級字段如下 :
int prio; // 調度優先級int static_prio; // 靜態優先級int normal_prio; // 正常優先級unsigned int rt_priority; // 實時優先級1、prio 字段 ( 調度優先級 )
prio 字段 是 " 調度優先級 " , 數值越小 , 優先級越高 ;
一般情況下 prio 字段 等于 normal_prio 字段 ;
特殊情況 : 在鎖同步機制中 , 如果 A 進程 占有了 實時互斥鎖 , B 進程 等待該 實時互斥鎖 , 假如 B 進程的優先級 高于 A 進程 的優先級 , 此時就會將 占有 實時互斥鎖 的 A 進程的 prio 優先級 提高到與 B 進程 prio 優先級相等的地位 ;
2、static_prio 字段 ( 靜態優先級 )
static_prio 字段 是 " 靜態優先級 " ,
對于 " 限期進程 " 來說 , 靜態優先級 static_prio 字段 值總為 000 , 沒有意義 ;
對于 " 實時進程 " 來說 , 靜態優先級 static_prio 字段 值總為 000 , 沒有意義 ;
對于 " 普通進程 " 來說 , 靜態優先級 static_prio 字段 值為 120+nice\rm 120 + nice120+nice , 其數值越小 , 優先級越高 ;
3、normal_prio 字段 ( 正常優先級 )
normal_prio 字段 是 " 正常優先級 " , 數值越小 , 優先級越高 ,
對于 " 限期進程 " 來說 , 正常優先級 normal_prio 字段 值總為 ?1-1?1 ;
對于 " 實時進程 " 來說 , 正常優先級 normal_prio 字段 值 99?rt_priority99 - \rm rt\_priority99?rt_priority ;
對于 " 普通進程 " 來說 , 正常優先級 normal_prio 字段 值 與 靜態優先級 static_prio 字段相等 , 為 120+nice\rm 120 + nice120+nice , 其數值越小 , 優先級越高 ;
4、rt_priority 字段 ( 實時優先級 )
rt_priority 字段 是 " 實時優先級 " ,
對于 " 限期進程 " 來說 , 實時優先級 rt_priority 字段 值總為 000 , 沒有意義 ;
對于 " 實時進程 " 來說 , 實時優先級 rt_priority 字段 值為 111 ~ 999999 , 其數值越大 , 優先級越高 ;
對于 " 普通進程 " 來說 , 實時優先級 rt_priority 字段 值總為 000 , 沒有意義 ;
二、三種進程的四種優先級總結
| prio 調度優先級 | 等于 normal_prio 字段 | 等于 normal_prio 字段 | 等于 normal_prio 字段 |
| static_prio 調度優先級 | 字段 值總為 000 , 沒有意義 | 字段 值總為 000 , 沒有意義 | 120+nice\rm 120 + nice120+nice , 其數值越小 , 優先級越高 |
| normal_prio 正常優先級 | ?1-1?1 | 99?rt_priority99 - \rm rt\_priority99?rt_priority | 120+nice\rm 120 + nice120+nice , 其數值越小 , 優先級越高 |
| rt_priority 實時優先級 | 字段 值總為 000 , 沒有意義 | 字段 值為 111 ~ 999999 , 其數值越大 , 優先級越高 | 字段 值總為 000 , 沒有意義 |
總結
以上是生活随笔為你收集整理的【Linux 内核】进程管理 - 进程优先级 ② ( prio 调度优先级 | static_prio 静态优先级 | normal_prio 正常优先级 | rt_priority 实时优先级 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux 内核】进程管理 task_
- 下一篇: 【Linux 内核】进程管理 ( 系统调