标签:ext rom tar 相对 bsp 红黑树 span shm 调度策略
有点晕
Linux进程的调度优先级数字会在好几个地方出现:内核,用户,top命令。他们各自都有自己的表示法。我们用一个实际的例子来说明,下面在Linux写一个最简单的程序: 编译它运行,把调度策略设置为SCHED_FIFO,优先级设置为50:$ sudo chrt -f 50 ./a.out这个时候我们在top命令里面观察a.out: 我们看到a.out的PR(优先级是)-51,CPU利用率100%。
所以上述进程的优先级,在三个不同视角的值分别为:
用户 |
内核 |
Top |
50 |
49 |
-51 |
咋回事
Linux的RT调度策略和普通进程在调度算法上面有差异,RT的SCHED_FIFO和SCHED_RR采用的是一个bitmap: 每次从第0bit开始往后面搜索第一个有进程ready的bit,然后调度这个优先级上面的进程执行,所以在内核里面,prio数值越小,优先级越高。$ sudo chrt -f 88 ./a.out
对应内核视角的11,对应top视角的-89: 这实在让人有一点晕!!普通的呢?
普通的讲nice的人相对来说比较简单,我们更关注它的nice值,-20~19之间,nice越低,优先级越高,权重越大,在CFS的红黑树左边的机会大。 你发现.nice为5的进程,在top命令显示PR是25。下面我们看nice是-5的: 它显示的是PR=15。由此大家可以发现规律,对于普通的采用CFS策略的NORMAL进程,top里面的PR=20+NICE在一起
总结一下,4个例子
用户 |
内核 |
Top |
RT 50 |
49 (99-50) |
-51 (-1-50) |
RT 99 |
0 |
rt |
NICE 5 |
25 |
|
NICE -5 |
15 |
标签:ext rom tar 相对 bsp 红黑树 span shm 调度策略
原文地址:https://www.cnblogs.com/shihuvini/p/9974771.html