进程调度API之task_nice

static inline int task_nice(const struct task_struct *p)
用于获取当前task的nice值,并返回nice值,nice值的范围是[ -20 ... 0 ... 19 ]
其使用的例程如下:
void set_user_nice(struct task_struct *p, long nice)
{
bool queued, running;
int old_prio, delta;
struct rq_flags rf;
struct rq *rq;


if (task_nice(p) == nice || nice < MIN_NICE || nice > MAX_NICE)
return;
}
可以看到通过task_nice 来得到当前task的nice值
其源码分析如下:
static inline int task_nice(const struct task_struct *p)
{
return PRIO_TO_NICE((p)->static_prio);
}
#define PRIO_TO_NICE(prio) ((prio) - DEFAULT_PRIO)
可见是通过当前task的静态优先级的值减去DEFAULT_PRIO。DEFAULT_PRIO在前面的博文中已经分析过,其值是120

你可能感兴趣的:(Linux,源码分析,kernel常用API源码分析)