【Linux】进程的优先级原来是这么回事

1、优先级的几个问题

1.1 什么是优先级

 优先级规定了占用资源的先后顺序,进程的优先级越高则可越早获得系统资源

1.2 为什么要有优先级

 资源相较于申请者少,类似于僧多粥少的情形,此时需按照优先级将申请者排序,从而有序地分配资源

1.3 Linux中如何查看进程的优先级

 可通过 ps -al 指令查看进程的优先级,此处我提前运行了 myproc 可执行程序,故输入 ps -al 指令后显示有 myproc
在这里插入图片描述
其中
 PID:此进程的代号
 PPID:此进程的父进程的代号
 PRI与NI在下面深入剖析

2、深入理解PRI值与NI

在Linux中的NI即nice值可改变PRI值,nice取值范围是 -20-19,进程的优先级PRI值等于初始PRI值加上NI值,即 PRI(最终)=PRI(起始)+NI ,对此我们有个疑问,通过 ps -al 指令查看到的进程优先级到底是最终的优先级呢还是起始值呢?

首先,由上图可知,NI值此时为0,则无论图片中的PRI是最终值还是起始值,我们都可以知道PRI起始值是80,即Linux给每个进程的初始优先级是80
下面我们进一步研究:使用 top 指令更改进程优先级
输入 [sudo] top -> 按 r -> 输入要改的进程PID -> 输入要改的nice值,[sudo]表示sudo是可选项

操作步骤及结果拼接成下图:
在这里插入图片描述
由上图我们可以总结出:

  1. 我们看到的PRI是最终值,而不是起始值,如【4.】中NI设为10时,PRI显示为90
  2. 提高优先级即减少NI值需 sudo提升top指令权限
  3. 每次更改NI修改的都是PRI初始值,并不从现在的PRI计算,如【4.】中PRI为90,更改NI为-20,得到的PRI却是【6.】中的60,即80-20=60
  4. 因为nice取值范围是 -20-19,故PRI(最终)取值范围是60-99
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值