Linux内核深度解析
上QQ阅读APP看书,第一时间看更新

2.8.2 进程优先级

限期进程的优先级比实时进程高,实时进程的优先级比普通进程高。

限期进程的优先级是−1。

实时进程的实时优先级是1~99,优先级数值越大,表示优先级越高。

普通进程的静态优先级是100~139,优先级数值越小,表示优先级越高,可通过修改nice值(即相对优先级,取值范围是−20~19)改变普通进程的优先级,优先级等于120加上nice值。

在task_struct结构体中,可以看到4个成员和优先级有关:

    include/linux/sched.h
    struct task_struct {
          …
          int                   prio;
          int                   static_prio;
          int                   normal_prio;
          unsigned int             rt_priority;
          …
    };

相关解释如表2.9所示。

表2.9 进程优先级

如果优先级低的进程占有实时互斥锁,优先级高的进程等待实时互斥锁,将把占有实时互斥锁的进程的优先级临时提升到等待实时互斥锁的进程的优先级,称为优先级继承。