博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
posix多线程有感--线程高级编程(优先级有关)
阅读量:5367 次
发布时间:2019-06-15

本文共 753 字,大约阅读时间需要 2 分钟。

今天查看了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 = 100;这样意味着rt_priority值越大,优先级越高;

    而内核提供的修改优先级的函数,是修改rt_priority的值,所以越大,优先级越高。

    所以用户在使用实时进程或线程,在修改优先级时,就会有“优先级值越大,优先级越高的说法”,也是对的。

#define MAX_USER_RT_PRIO 100 最大实时进程优先级100

#define MAX_RT_PRIO MAX_USER_RT_PRIO  
#define MAX_PRIO (MAX_RT_PRIO + 40) 最大的进程优先级140
#define DEFAULT_PRIO (MAX_RT_PRIO + 20) 默认的进程优先级120

转载于:https://www.cnblogs.com/wangfengju/archive/2013/05/11/6173106.html

你可能感兴趣的文章
jxl.dll操作总结
查看>>
成员函数对象类的const和非const成员函数的重载
查看>>
机器学习实战-----八大分类器识别树叶带源码
查看>>
eclipse git 新的文件没有add index选项
查看>>
java 泛型
查看>>
VC NetShareAdd的用法
查看>>
java web项目中后台控制层对参数进行自定义验证 类 Pattern
查看>>
图论学习一之basic
查看>>
Java的Array和ArrayList
查看>>
记录Ubuntu 16.04 安装Docker CE
查看>>
安东尼奥·维瓦尔第——巴洛克音乐的奇葩
查看>>
pandas的增删改查
查看>>
HDU 5933/思维
查看>>
字节对齐
查看>>
Design Tic-Tac Toe
查看>>
SQL中的去重操作
查看>>
uva 12097 - Pie(二分,4级)
查看>>
mongodb索引
查看>>
nginx源码学习资源(不断更新)
查看>>
【bzoj2882】工艺 后缀自动机+STL-map
查看>>