Linux采用两种不同的优先级范围,一种是nice值,另一种是实时优先级。
1.nice值
nice值得范围是-20~19,默认值是0。越大的nice值意味着更低的优先级,也就是说nice值为-20的优先级最高。
2.实时优先级
实时优先级的范围是0~99,其值得意义与nice值相反。即:越高的实时优先级数值意味着进程优先级越高。Linux的进程可分为普通进程和实时进程,实时进程都是一些对响应时间要求比较高的进程,因此实时进程的优先级比普通进程的优先级要高。
3.优先级比较
Linux中的这两种优先级划分,是不是难以理解?到底哪种优先级高?如果一个进程同时含有上述两种优先级呢?
对于上述的两个问题,最好的回答方式就是用代码说话。
Linux 3.6内核中,关于进程的优先级,include/linux/sched.h文件中有如下的一段描述:
1597 /*
1598 * Priority of a process goes from 0..MAX_PRIO-1, valid RT
1599 * priority is 0..MAX_RT_PRIO-1, and SCHED_NORMAL/SCHED_BATCH
1600 * tasks are in the range MAX_