转载至:http://qiita.com/mykysyk@github/items/70fd180faaf06121930e
ps -eo pid,comm,rtprio,pri,priority
项目 | 优先级 |
---|---|
rtprio | 数字大的优先级高 |
pri | 数字大的优先级高 |
priority | 数字小的优先级高 |
cmd | 值 | 优先级高 | 优先级低 |
---|---|---|---|
ps | rtprio | 99 | 1 |
ps | pri | 139 | 0 |
ps | priority | -100 | 39 |
top | pr | RT(-99) | 39 |
nice | -20 | 19 |
普通进程有:静态优先级和动态优先级。而实时进程又增加了实时优先级。
注:进程的优先级只是一个整数,它是调度程序选择进程运行的基础。
1、静态优先级:static priority:之所以称为静态优先级是因为它不会随着时间而改变,内核不会修改它,只能通过系统调用nice去修改。静态优先级用进程描述符中的static_prio表示。
2、动态优先级:调度程序通过增加或减少进程静态优先级的值来奖励IO小号型进程或惩罚cpu消耗型进程。调整后的优先级称为动态优先级。在进程描述符中用prio表示,通常所说的优先级指的是动态优先级。在 0~MAX_PRIO-1 之间取值(MAX_PRIO 定义为 140),其中 0~MAX_RT_PRIO-1 (MAX_RT_PRIO 定义为100)属于实时进程范围,MAX_RT_PRIO~MX_PRIO-1属于非实时进程。数值越大,表示进程优先级越小。
普通进程的优先级通过一个关于静态优先级和进程交互性函数关系计算得到。随实际任务的实际运行情况得到。实时优先级和它的实时优先级成线性,不随进程的运行而改变。
3、实时优先级:
实时优先级只对实时进程有意义。在进程描述符rt_priority中。取值0~MAX_RT_PRIO-1。
参考:
http://blog.youkuaiyun.com/muge0913/article/details/7562133
https://www.nskint.co.jp/01_solution/06_kyoiku/embc3/bunsyo/page_16_08.html