【Linux】进程优先级、进程nice值和%nice

  用top或者ps命令会输出PRI/PR、NI%ni/%nice这三种指标值,这些到底是什么东西?先给出大概的解释如下:

  PRI :进程优先权,代表这个进程可被执行的优先级,其值越小,优先级就越高,越早被执行;

  NI :进程Nice值,代表这个进程的优先值;

  %nice :改变过优先级的进程的占用CPU的百分比。

  PRI是比较好理解的,即进程的优先级,或者通俗点说就是程序被CPU执行的先后顺序,此值越小进程的优先级别越高。那NI呢?就是我们所要说的nice值了,其表示进程可被执行的优先级的修正数值。如前面所说,PRI值越小越快被执行,那么加入nice值后,将会使得PRI变为:PRI(new)=PRI(old)+nice。由此看出,PR是根据NICE排序的,规则是NICE越小PR越前(小,优先权更大),即其优先级会变高,则其越快被执行。如果NICE相同则进程uid是root的优先权更大。

  在LINUX系统中,Nice值的范围从-20到+19(不同系统的值范围是不一样的),正值表示低优先级,负值表示高优先级,值为零则表示不会调整该进程的优先级。具有最高优先级的程序,其nice值最低,所以在LINUX系统中,值-20使得一项任务变得非常重要;与之相反,如果任务的nice为+19,则表示它是一个高尚的、无私的任务,允许所有其他任务比自己享有宝贵的CPU时间的更大使用份额,这也就是nice的名称的来意。

  进程在创建时被赋予不同的优先级值,而如前面所说,nice的值是表示进程优先级值可被修正数据值,因此,每个进程都在其计划执行时被赋予一个nice值,这样系统就可以根据系统的资源以及具体进程的各类资源消耗情况,主动干预进程的优先级值。在通常情况下,子进程会继承父进程的nice值,比如在系统启动的过程中,init进程会被赋予0,其他所有进程继承了这个nice值(因为其他进程都是init的子进程)。

  对nice值一个形象比喻,假设在一个CPU轮转中,有2个runnable的进程A和B,如果他们的nice值都为0,假设内核会给他们每人分配1k个cpu时间片。但是假设进程A的为0,但是B的值为-10,那么此时CPU可能分别给A和B分配1k和1.5k的时间片。故可以形象的理解为,nice的值影响了内核分配给进程的cpu时间片的多少,时间片越多的进程,其优先级越高,其优先级值(PRI)越低。%nice,就是改变过优先级的进程的占用CPU的百分比,如上例中就是0.5k/2.5k=1/5=20%。

  由此可见,进程nice值和进程优先级不是一个概念,但是进程nice值会影响到进程的优先级变化。

  参考资料:

  [1] http://blog.csdn.net/longdel/article/details/7317511

时间: 2024-08-05 15:18:47

【Linux】进程优先级、进程nice值和%nice的相关文章

Linux进程优先级和nice值

在学习了linux的完全公平调度算法(CFS)后,记录下学习轨迹 这篇文章主要讲述,完全公平调度算法的工作方式,和一些调度知识 我们可以通过ps -l看到当前正在运行的进程的详细信息其中 F:表示进程旗标,标识进程所拥有的权限,当我切换到root的时候为4表示拥有root权限,为1仅有fork()权限 R:表示进程当前的状态 R:当前正在运行(RUNNING) S:睡眠(SLEEP) D:不可中断 T:停止(STOP) Z:僵尸进程(ZOMBIE) UID:拥有该进程用户的用户ID PID:进程

Linux进程优先级的处理--Linux进程的管理与调度(二十二)

日期 内核版本 架构 作者 GitHub CSDN 2016-06-14 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度 1 前景回顾 1.1 进程调度 内存中保存了对每个进程的唯一描述, 并通过若干结构与其他进程连接起来. 调度器面对的情形就是这样, 其任务是在程序之间共享CPU时间, 创造并行执行的错觉, 该任务分为两个不同的部分, 其中一个涉及调度策略, 另外一个涉及上下文切换. 内核必须提供一种方法, 在各个进程之间

进程优先级,进程nice值和%nice的解释

用top或者ps命令会输出PRI/PR.NI.%ni/%nice这三种指标值,这些到底是什么东西?先给出大概的解释如下: PRI :进程优先权,代表这个进程可被执行的优先级,其值越小,优先级就越高,越早被执行 NI :进程Nice值,代表这个进程的优先值 %nice :改变过优先级的进程的占用CPU的百分比 (呵呵,这句好难理解是吧,不急慢慢来^_^) PRI是比较好理解的,即进程的优先级,或者通俗点说就是程序被CPU执行的先后顺序,此值越小进程的优先级别越高.那NI呢?就是我们所要说的nice

Linux进程优先级的处理--Linux进程的管理与调度(十八)

日期 内核版本 架构 作者 GitHub CSDN 2016-06-14 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度 前景回顾 进程调度 内存中保存了对每个进程的唯一描述, 并通过若干结构与其他进程连接起来. 调度器面对的情形就是这样, 其任务是在程序之间共享CPU时间, 创造并行执行的错觉, 该任务分为两个不同的部分, 其中一个涉及调度策略, 另外一个涉及上下文切换. 内核必须提供一种方法, 在各个进程之间尽可能公平地

Linux之进程管理(2)相关命令之四

Linux之进程管理(2)相关命令之四 设置或调整进程优先级命令: nice  rnice nice 命令 nice - run a program with modified scheduling priority 运行一个程序时修改调度其进程优先级 格式及用法: nice  [options]  [command [args]] -n  # :#表示要设置此程序nice值,-20到19,值越下,优先级越高 注:-20到19的每个nice值分别对应(Centos5中为100-139,CentO

浅析Linux计算机进程地址空间与内核装载ELF

简介: 本文基于Linux?系统对进程创建与加载进行分析,文中实现了Linux库函数fork.exec,剖析内核态执行过程,并进一步展示进程创建过程中进程控制块字段变化信息及ELF文件加载过程. 一.初识Linux进程                                                                                                                                            

Linux之进程管理(1)基本介绍

Linux之进程管理(1)基本介绍 什么是进程: linux系统中,进程管理相当重要.所谓进程,就是相当于触发任何一个事件时,系统都会将此事件当成一个角色定义成为一个进程,并且给予这个进程一个IP,成为PID,同时依据启发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设定.然后这个PID能够在linux上面进行的各种动作,这个PID代表一个角色. PID的产生: 在linux中执行此程序文件中,内核并不是马上进行执行,而是根据程序文件的执行者的选项和一些相应的属性等参数,然后包括其中

linux 进程优先级 调度 nice pri

转:http://www.linuxidc.com/Linux/2016-05/131244.htm 深入 Linux 的进程优先级 [日期:2016-05-11] 来源:liwei.life  作者:@orroz [字体:大 中 小] 为什么要有进程优先级?这似乎不用过多的解释,毕竟自从多任务操作系统诞生以来,进程执行占用cpu的能力就是一个必须要可以人为控制的事情.因为有的进程相对重要,而有的进程则没那么重要. 本文作者:邹立巍 Linux系统技术专家.目前在腾讯SNG社交网络运营部 计算资

Linux之进程查看与管理

                       Linux之进程查看与管理 1.进程的基本概念 进程是运行起来的程序.唯一标示进程的是进程描述符(PID),在linux内核中是通过task_struck和task_list来定义和管理进程的 进程分类:交互式进程.批处理进程.实时进程 交互式进程:一般是由Shell启动的进程.交互式进程有:控制台命令shell,文本编辑器,图形应用程序 批处理进程(Batch Process):不需要用户交互,一般在后台运行. 实时进程:这种进程不能被低优先级进程