linux 实时线程优先级实质
2013-04-27 14:14
148 查看
今天查看了linux下的实时线程,FIFO和RR策略的调度,遇到一个问题:
priority越大优先级越高呢?还是越小越高呢?
回答这个问题要明白一个问题,首先,linux2.6内核将任务优先级进行了一个划分:
0——99 实时进程
100——139 非实时进程
现在,这个划分是起决定作用的,而且一定是数值越小,优先级越高。
但是,有时候从网上会看到 优先级数值越大,优先级越高?这又是怎么回事?难道有一种说法错了吗?
实际的原因是这样的,对于一个实时进程,他有两个参数来表明优先级——prio 和 rt_priority,
prio才是调度所用的最终优先级数值,这个值越小,优先级越高;
而rt_priority 被称作实时进程优先级,他要经过转化——prio=MAX_RT_PRIO - 1- p->rt_priority;
MAX_RT_PRIO = 99;这样意味着rt_priority值越大,优先级越高;
而内核提供的修改优先级的函数,是修改rt_priority的值,所以越大,优先级越高。
所以用户在使用实时进程或线程,在修改优先级时,就会有“优先级值越大,优先级越高的说法”,也是对的。
priority越大优先级越高呢?还是越小越高呢?
回答这个问题要明白一个问题,首先,linux2.6内核将任务优先级进行了一个划分:
0——99 实时进程
100——139 非实时进程
现在,这个划分是起决定作用的,而且一定是数值越小,优先级越高。
但是,有时候从网上会看到 优先级数值越大,优先级越高?这又是怎么回事?难道有一种说法错了吗?
实际的原因是这样的,对于一个实时进程,他有两个参数来表明优先级——prio 和 rt_priority,
prio才是调度所用的最终优先级数值,这个值越小,优先级越高;
而rt_priority 被称作实时进程优先级,他要经过转化——prio=MAX_RT_PRIO - 1- p->rt_priority;
MAX_RT_PRIO = 99;这样意味着rt_priority值越大,优先级越高;
而内核提供的修改优先级的函数,是修改rt_priority的值,所以越大,优先级越高。
所以用户在使用实时进程或线程,在修改优先级时,就会有“优先级值越大,优先级越高的说法”,也是对的。
相关文章推荐
- linux 实时线程优先级问题——数值越大优先级越高吗?
- Linux-pthread如何设置线程的优先级
- linux下设置线程优先级 http://blog.csdn.net/typhoonzb/article/details/4544278
- Unix / Linux 线程的实质
- 信号量进行同步(linux POSIX的实时扩展,用于线程)!
- Linux线程优先级
- linux 进程优先级 之设置实时进程 (另一种方式是设置nice值)【转】
- 如何在linux/unix中设置线程的优先级
- Linux线程属性及优先级设置
- linux线程优先级设置
- Linux下线程的调度策略与优先级(一)
- linux中采用用户级线程模拟实现EDF和RMS两种处理机实时调度算法之改进
- linux创建带优先级的线程
- Linux线程优先级
- Linux下线程的调度策略与优先级
- Linux下线程的调度策略与优先级
- Linux 线程优先级
- Linux下线程的调度策略与优先级(二)
- Linux:设置“线程”优先级
- 【linux】非实时进程,实时进程, 优先级