形象化理解nice值越高优先级越低

当我们说起某个人很nice的时候,通常指的是那个人心地善良,很好说话,很容易相处。(相反,aggressive的人很可能是不nice的,因为老想抢夺别人的东西,尤其是在资源有限的情况下,恨不得一个蛋糕吃掉90%以上。所以我们要远离那些为了自己的利益而不顾一切的人。)

言归正传,还是先看看"nice"是怎么定义的,在book 《Linux Kernel Development》 (3rd Edition) Page#44中,

 

The Linux kernel implements two separate priority ranges.The first is the nice value, a number from –20 to +19 with a default of 0. Larger nice values correspond to a lower priority—you are being "nice" to the other processes on the system. Processes with a lower nice value (higher priority) receive a larger proportion of the system’s processor compared to processes with a higher nice value (lower priority). ...<snip>...

译文:Linux内核实现了两种不同的优先级范围。第一种是用nice值,它的范围是[-20, 19],默认值是0。越大的nice值意味着优先级越低--你对系统中的别的进程"nice"。相比于那些高nice值(低优先级)的进程来说,低nice值(高优先级)的进程可以获得更多的处理器时间。

 

在生活(或工作)中,一个人越nice,说明他越好说话,那么他的诉求就越容易被更晚一些予以满足。在操作系统中,如果一个进程越nice, 说明它很好说话,说明它不着急使用CPU, 那它就可以被抢占,反正很nice呗,于是优先级就越低。在一个资源有限的环境中,越nice的人得到的利益保证通常是滞后的,谁让你好说话呢?!在一个操作系统中(CPU资源有限),越nice的进程得到CPU的时间同样是滞后的,谁让你不着急呢?!(哪怕你正在CPU上run着呢,一个比你不nice的进程闯进来了,你就得从CPU上被调度器给撸下来,等待下次被调度。)

归根结底一句话,会叫的孩子有奶吃,越是不nice的进程越有CPU优先使用权(也就是优先级高咯)。

 

posted @ 2017-01-12 17:27  veli  阅读(2346)  评论(0编辑  收藏  举报