中山网站建设排名,会昌网站,wordpress主题外贸网站,扁平化手机网站模板进程优先级
首先呢#xff0c;我们知道一个进程呢#xff08;或者也可以叫做一个任务#xff09;#xff0c;它呢有时候要在CPU的运行队列中排队#xff0c;要么有时候阻塞的时候呢又要在设备的等待队列中排队#xff0c;其实我们排队的本质就是#xff1a;确认优先级。…进程优先级
首先呢我们知道一个进程呢或者也可以叫做一个任务它呢有时候要在CPU的运行队列中排队要么有时候阻塞的时候呢又要在设备的等待队列中排队其实我们排队的本质就是确认优先级。
关于优先级呢我们可以从以下三个方面来进行说明
进程优先级是什么
本质就是得到某种资源的先后顺序。
cpu资源分配的先后顺序就是指进程的优先权priority。 优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用可以改善系统性能。 还可以把进程运行到指定的CPU上这样一来把不重要的进程安排到某个CPU可以大大改善系统整体性能。
在Linux操作系统中其实就是PCB中的一个int字段数值越小优先级越大。
为什么要有进程优先级
其实可以用我们生活中的例子来进行说明
比如说我们上学的时候要去食堂吃饭人太多了那你得进行排队去图书馆的时候你想要有一个好的座位那你得优先于其他同学占到那个位置也需要排队其实要排队的原因就是资源不足
而你想排队就是想要获得某种资源而由于资源不足就必须遵循一个先后顺序来获取资源才能够正常运转下去。
Linux中如何操作进程优先级
Linux进程的优先级数值范围60~99
Linux进程的默认优先级都是80
Linux是支持动态优先级调整的
Linux进程PCB中存在一个nice值进程优先级的修正数据
进程新的优先级 进程老的优先级nice值
在linux中可以输入如下命令查看进程的优先级 ps -la 我们很容易注意到其中的几个重要信息有下UID : 代表执行者的身份PID : 代表这个进程的代号PPID 代表这个进程是由哪个进程发展衍生而来的亦即父进程的代号PRI 代表这个进程可被执行的优先级其值越小越早被执行NI 代表这个进程的nice值
如果我们想要调整一下优先级我们要怎么调整呢
通过top命令启动任务管理器
然后点击一个r键 当前光标所在这一行就是让我们输入要修改的优先级的进程的pid
比如我这里正在运行一个pid为5230的进程 我通过输入5230之后回车 这里我们要输入的是一个nice值我们前面说到进程新的优先级进程老的优先级nice值当前进程老的优先级是80所以我们输入的nice值在老优先级修改的范围必须保证在60-99。
下面我们输入一个10
点击q退出任务管理器之后继续输入ps -al命令查看优先级 发现变成了90了。这里相当于把优先级给调低了。
下面我们把优先级调高一点
同样的操作打开任务管理器 这是我们回车发现我们没有权限然后我们sudo top提升一下权限输入一下自己的用户密码
然后我们继续进行以上操作大家是不是会认为他的优先级这个时候应该是回到80
那么我们下面来看 发现我们的这个进程myproc的优先级变成了70.
在我们的Linux当中呢统一进程要修改优先级的时候老的进程优先级都是从80开始的所以我们刚刚的老的优先级并不是从90开始变的而是从80开始-10的最后变成了70.
所以呢你要调整优先级每次都是有一个确定的起始值。
nice值调整最小是-20超过部分统一当成-20
nice值调整最大是19超过部分统一当成19
所以才有刚刚的结论
Linux进程的优先级数值范围60~99
PRI也还是比较好理解的即进程的优先级或者通俗点说就是程序被CPU执行的先后顺序此值越小进程的优先级别越高那NI呢?就是我们所要说的nice值了其表示进程可被执行的优先级的修正数值PRI值越小越快被执行那么加入nice值后将会使得PRI变为PRI(new)PRI(old)nice这样当nice值为负值的时候那么该程序将会优先级值将变小即其优先级会变高则其越快被执行所以调整进程优先级在Linux下就是调整进程nice值nice其取值范围是-20至19一共40个级别。
那么我们下面来说明为什么要把优先级限定在一定的范围
如果我们的用户恶意频繁的去修改进程的优先级一个进程刚调度完用户又把该进程的优先级设置成最高一直调度那么有可能就会导致一些优先级比较低的进程就一直不能够被调度导致一些进程长时间得不到CPU资源那么我们把这种现象叫做进程饥饿。
OS调度的时候较为均衡的让每一个进程都能够得到调度。这能够体现出公平性。
我们linux中呢还有一个关于设置优先级的系统调用接口