码迷,mamicode.com
首页 > 其他好文 > 详细

静态优先级,动态优先级,实时优先级 详解

时间:2016-06-07 12:49:31      阅读:433      评论:0      收藏:0      [点我收藏+]

标签:

静态优先级:(定义在进程描述符中的:static_prio)

动态优先级:(定义在进程描述符中的:prio)

实时优先级:(定义在进程描述符中的:rt_priority)

 

静态优先级:

    定义:他不随时间改变,内核不会主动修改它,只能通过系统调用nice去修改static_prio

动态优先级:

   定义:调度程序通过或减少进程静态优先级来奖励IO消耗型进程或惩罚CPU消耗进程,调整后的优先级为动态优先级(prio)

实时优先级:

  实时优先级只对实时进程有效

 

宏定义:

MAX_PRIO:140

MAX_RT_PRIO:100

nice:[-20,19]

 

进程的动态优先级取值范围:[0,MAX_PRIO-1],即[0,139]

     针对进程划分为两个范围优先级:

 

     普通进程:[0,MAX_RT_PRIO-1]即[0,99]

            计算方法:静态优先级与进程交互性函数计算出来的,随任务的实际运行情况调整

 

     实时进程:[MAX_RT_PRIO,MAX_PRIO]即[100,139]

            计算方法:prio=MAX_RT_PRIO-1 - rt_priority

     实时进程的优先级与动态优先级成线性关系,不随时程运行而改变

     也就是说,如果一个进程是实时进程即在[0,99]之间优先级prio 与rt_priority之间的关系是固定的

 

静态优先级与nice 关系  

static_prio=MAX_RT_PRIO+nice+20

 

 

 

 

 

 

  

静态优先级,动态优先级,实时优先级 详解

标签:

原文地址:http://www.cnblogs.com/zengkefu/p/5566368.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!