Linux 进程优先级

进程优先级

由于系统中进程数量众多, 而CPU资源却较少, 甚至只有一个,  而进程之间需要竞争来使用CPU  . 这时让一个比较重要, 需要优先

执行的进程去和众多的其他进程去竞争,  显然是不合理的.  就像感冒患者和有生命危险的患者抢床位一样的不合理.  此时为了更

合理的分配CPU资源, 就有了进程优先级

优先级高的进程有优先执行的权利. 此外, 优先级还影响分配给进程的时间片长短 . 重要的进程,  应该分配多一些cpu时间片, 好

让其尽快完成任务. 所有的进程都会有机会运行,但高优先级重要的进程会获取更多的cpu执行时间 .  配置进程优先级对多任

务环境的Linux很有用,可以改善系统性能。


优先级取值范围 

实时进程与普通进程

和其他操作系统类似,  Linux也支持两种进程

实时进程和非实时进程。实时进程具有一定程度上的紧迫性,要求对外部事件做出非常快的响应;而非实时进程则没有这种限

制。所以,调度程序要区分对待这两种进程,通常,实时进程要比非实时进程优先运行.  实时进程会一直运行直到退出,除非它

阻塞才会释放CPU,  实时进程只能被更高优先级的实时进程抢占,  任意实时进程比非实时进程的优先级都要高.   这两种进程的区

分也反映在 task_struct 数据结构中

优先级取值范围

在linux系统中,进程优先级的取值范围是0-139 , 而这个值又是由另外两个值组成的,一个是代表实时进程(realtime)优先级范

围是[0, 99], 另外一个是代表非实时进程,取值范围是[100, 139]。 所以,Linux进程实际上实现了140个优先级范围,取值范围是

从 [0, 139],这个值越小,优先级越高。

  • 动态优先级:实时进程优先级, 范围 [0,99],该区间被称为动态优先级,优先级随着进程执行情况的变化而改变,以便获得更好的调度性能。
  • 静态优先级:非实时进程的优先级, 范围[100,139], 该区间被称为静态优先级,该值不会随着时间而进行改变,但系统可以通过nice来进行修改 .  

查看进程优先级

执行  ps -l  即可,  执行后会输出类似下面的信息

  • UID : 代表执行者的身份
  • PID : 进程号
  • PPID : 父进程的进程号
  • PRI  : 进程优先级,  越小越优先
  • NI  :  进程的nice值, 用于调整进程优先级

top 指令也可查看 

但top查看时优先级用PR表示

PRI , PR 和 NI

PRI 代表的就是进程的优先级. 其值越小, 优先级越高,  即越早的被CPU所执行

那NI 又是个干啥的 ? NI 就是 nice值,  nice 是用来修改 PRI 的 , 也就是说用来调整进程优先级的, PRI(new) = PRI(old) + nice

当nice值为负值的时候,那么该程序优先级会变高 (PRI数值降低)

Linux下,  调整进程优先级就是更改NI, 也就是nice值,  Linux下, nice的取值为 [ -20 ~ 19 ] , 一共40个范围.

那 PR 呢 ? PR 是在top 命令执行后的显示,  其代表的是进程的静态优先级,  与静态优先级(static_Priority)关系为 :

PR = static_Priority  - 100, static_Priority取值为[100, 139],  所以PR取值是 [0, 39] .

PR和NI关系为 : PR(new) = PR(old) + nice

用top命令更改已存在进程的nice进而调整进程优先级

执行 top 命令 ,然后输入r , 再输入需要修改的进程的进程号PID, 再输入nice 的值 , 按回车即可

我们先创建运行一个自己的进程, 让其进入死循环, 如下 :

然后再打开一个窗口, 执行 top命令,  执行后按 r 进入会提示让输入要更改的进程号PID, 不输入默认是top显示的第一个进程, 如下

是PID为3333的TEST进程

输入进程号3333, 按回车, 会提示输入nice的值

可以看到优先级PR由20变成了18 ,NI 为-2

用ps 查看可以看到PRI也变成了 78.之前是80 

 

关于静态优先级和动态优先级这块没太搞懂, 后续再有了解再补充~

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值