Linux 系统中的优先级

举报
跳动的bit 发表于 2022/08/30 07:47:46 2022/08/30
【摘要】 一、Linux 系统中的优先级 💦 基本概念  这里我们已经在上面说过了,就不谈了。 💦 PRI and NI通过ps -al查看当前进程相关信息:PRI 比较好理解,即进程的优先级,或者通俗点说就是程序被 CPU 执行的先后顺序,此值越小,进程的优先级别越高。NI 就是我们所要说的 nice 值了,其表示进程可被执行的优先级的修正数值。PRI 值越小越快被执行,那么加入 nice 值...

一、Linux 系统中的优先级

💦 基本概念

  这里我们已经在上面说过了,就不谈了。

💦 PRI and NI

通过ps -al查看当前进程相关信息:

在这里插入图片描述

  1. PRI 比较好理解,即进程的优先级,或者通俗点说就是程序被 CPU 执行的先后顺序,此值越小,进程的优先级别越高。

  2. NI 就是我们所要说的 nice 值了,其表示进程可被执行的优先级的修正数值。

  3. PRI 值越小越快被执行,那么加入 nice 值后,将会使得 PRI 变为:PRI(new) = PRI(old) + nice,这里的 old 永远是 80,下面解释。

  4. 当 nice 值为负值的时候,那么该程序优先级值将变小,其优先级会变高,则越快被执行;当 nice 值为正值时,意味着你要调低优先级。所以调整进程优先级,在 Linux 下,就是调整进程 nice 值。

  5. nice 其取值范围是闭区间 -20 至 19,一共 40 个级别 —— -20 至 0,0 至 19。

  6. PID 是当前进程的专属标识;PPID 是当前进程的父进程的专属标识;TTY 可以理解为终端设备;CMD 是当前进程的命令。

  7. UID 是执行者的身份。

    ll后,其中可以看到我:

    在这里插入图片描述

    ll -n,就可以看到我的 ID:

    也就是说在 Linux 中标识一个用户,并不是通过用户名,而是通过用户的 UID。比如 qq 里,每人都有一个昵称,如果昵称可以随便改的话,就意味着昵称不是标识你的唯一方式,而是通过 qq 号码来唯一标识你。所以对于操作系统来说,当你新建用户时,除了你自己给自己起的名称之外,还有操作系统所分配给你的 UID。原因是因为计算机比较擅于处理数据

    在这里插入图片描述

    所以可以看到这里的进程是我启动的:

    在这里插入图片描述

饥饿问题 ❓

  Linux 中的优先级由prinice值共同确定。Linux 优先级的特点,对于普通进程,优先级的数值越小,优先级越高;优先级的数值越大,优先级越低。但是优先级不可能一味的高,也不可能一味的低,比如说优先级最高的是 30,最低的是 99,那么我们不可以把最高搞成 -300,最低搞成 999。为啥优先级能设置,但不能很夸张的设置,是因为即使再怎么优先,操作系统的调度器也要适度的考虑公平问题,比如我把 A进程优先级搞到 -300,对我来讲,A进程老是得到资源,别人长时间得不到资源,这种就叫饥饿问题。好比你在打饭窗口排着队呢,老是有些人觉得自己优先级高往前插队,那么你就长时间打不到饭,导致最后吃不到饭。所以 CPU 也是有度的来根据优先级调度。

其中 pri 的优先级是多少就是多少,但实际上 Linux 的优先级是可以被修正的,nice 值就是优先级的修正数据 [-20 ~ 19],其中 -20 优先级最高,19 优先级最低。

💦 PRI vs NI

  1. 需要强调一点的是,进程的 nice 值不是进程的优先级,他们不是一个概念,但是进程 nice 值会影响到进程的优先级变化。
  2. 可以理解 nice 值是进程优先级的修正数据。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。