1 事情有轻缓急重,比如快开车了你还没拿车票,那么其他排队的人可能会让你优先取票。在进程中,Linux给予进程一个顺序值PRI来代表优先级,值越小就越优先(为什么常常有与观念相反的设置)。但是PRI值是由内核动态调整的,用户无法直接调整PRI值,就是说对PRI无可奈何。
2 但是如果想调整进程的优先执行顺序时,可通过Nice值,即NI。两者的关系:PRI(new)=PRI(old)+nice,nice值虽然会影响到PRI值,但是最终还是要由系统分析后决定怎么执行。nice值可调整的范围为-20~19,就总共40个数。
(1)root可调整自己或他人进程的nice值,应该不受只能越调越大的影响(可做实验确认);
(2)一般用户只能调整自己的nice值,范围缩小了,是0到19,共20个。(是为了避免一般用户抢占系统资源),另一个方面是一般用户仅可将nice值越调越高,例如本来是5,则将来仅能调整到大于5。
3 那怎么去调整进程的nice值:有2法:一开始执行程序就立即给予一个特定的nice值,用nice命令:
(1)nice -n -5(数字) command:但是结果PRI显示出来不一定是相减后的数字,因为内核还会动态调整。
调整某个已经存在的PID的nice值,用renice命令,所以用这方面你必须要知道PID
(2)renice 10(数字) PID(通过ps -l 查看进程的PID)
4 整个nice值可以在父进程和子进程之间传递。另外,top同样可以调整nice值。怎么调整?