【Linux】进程周边003之进程优先级

 【Linux】进程周边003之进程优先级_第1张图片

樊梓慕:个人主页

 个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C++》《Linux》

每一个不曾起舞的日子,都是对生命的辜负


目录

前言

1.基本概念

2.PRI与NI

3.利用top命令更改已存在进程的nice值

4.通过renice命令更改进程的nice值 

5.四个重要概念


前言

本篇文章博主将会讲解进程优先级的概念,我们知道一个CPU只能同时运行一个进程,而进程是由很多个的,所以需要存在进程优先级来确定进程获取CPU资源的顺序。

 欢迎大家收藏以便未来做题时可以快速找到思路,巧妙的方法可以事半功倍。 

=========================================================================

GITEE相关代码:fanfei_c的仓库

=========================================================================


1.基本概念

  • cpu资源分配的先后顺序,就是指进程的优先权(priority)。
  • 优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用,可以改善系统性能。
  • 还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统整体性能。

 在Linux系统中,利用ps -l命令来查看系统进程:

  • UID : 代表执行者的身份
  • PRI :代表这个进程可被执行的优先级,其值越小越早被执行
  • NI :代表这个进程的nice值  

2.PRI与NI

  • PRI的值所代表的就是进程的优先级,PRI值越小,优先级越高。
  • NI即为nice值,表示进程优先级的修正数值。

即PRI(new)=PRI(old)+nice

注意:PRI(old)都是80

在Linux中,初始进程优先级默认为80,NI默认为0. 

注意nice可为负,所以我们可以通过调整nice值得方式来调整进程优先级。

  • PRI取值范围[60,99]
  • nice值取值范围[-20,19]

思考:Linux调整优先级为什么是要受限制的?

如果不限制,谁都想要让自己进程的优先级高,别人的优先级低。

那就会导致有的人会将进程优先级设置的非常高。

优先级较高的进程优先得到资源,那后续产生的常规进程就很难享受到CPU资源。

这个问题被称为:进程饥饿。

请注意:任何分时操作系统,都要保证进程调度上较为公平的进行。

但还有另外一种实时操作系统,就不能是这种基于时间片轮转的方式进行了,具体的内容大家可以看博主进程周边系列的下一篇文章:进程的调度与切换。


3.利用top命令更改已存在进程的nice值

top命令可以理解为Windows系统中的任务管理器,它能够动态实时的显示系统当中进程的资源占用情况。

那如何利用top命令更改进程nice值呢?

进入top后按"r"->输入进程PID->输入nice值

  1. top【Linux】进程周边003之进程优先级_第2张图片
  2. "r"【Linux】进程周边003之进程优先级_第3张图片
  3. 输入进程PID【Linux】进程周边003之进程优先级_第4张图片
  4. 输入nice值 【Linux】进程周边003之进程优先级_第5张图片
  5.  按q退出,ps -al查看下优先级是否更改

注意:若是想将NI值调为负值,也就是调高进程的优先级,需要使用sudo命令提升权限。 


4.通过renice命令更改进程的nice值 

 实例:renice nice pid

【Linux】进程周边003之进程优先级_第6张图片

同样的:如果要调高优先级,即nice值为负需要sudo。

如:

【Linux】进程周边003之进程优先级_第7张图片


5.四个重要概念

  • 竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高效完成任务,更合理竞争相关资源,便有了优先级。
  • 独立性: 多进程运行,需要独享各种资源,多进程运行期间互不干扰。
  • 并行: 多个进程在多个CPU下分别同时进行运行,这称之为并行。
  • 并发: 多个进程在一个CPU下采用进程切换的方式,在一段时间之内,让多个进程都得以推进,称之为并发。

=========================================================================

如果你对该系列文章有兴趣的话,欢迎持续关注博主动态,博主会持续输出优质内容

博主很需要大家的支持,你的支持是我创作的不竭动力

~ 点赞收藏+关注 ~

=========================================================================

你可能感兴趣的:(Linux,linux,运维,服务器)