【Linux进程篇-----进程优先级】

这篇具有很好参考价值的文章主要介绍了【Linux进程篇-----进程优先级】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、进程优先级

1.基本概念

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

2.查看以及修改系统进程的优先级

在 Linux 或者 unix 系统中,用ps –al命令则会类似输出以下几个内容, 其中:
UID : 代表执行者的身份
PID : 代表这个进程的代号
PPID :代表这个进程是由哪个进程发展衍生而来的,亦即父进程的代号
PRI :代表这个进程可被执行的优先级,其值越小越早被执行
NI :代表这个进程的 nice 值,其表示进程可被执行的优先级的修正数值。
【Linux进程篇-----进程优先级】
我们看到我们现在有两个进程 bash ps 它们的进程优先级都是 80,如果我们要修改它们的优先级就要用到 NI 的 nice 值了。

【Linux进程篇-----进程优先级】

从这个公式中我们知道 新的 PRI = 老的 PRI + nice 值,但是这个老的 PRI 的值是指 PRI 最初的默认值,例如上面的bash ps 是 80,那么这个 PRI 以后不论怎么改老的 PRI 都是 80,当然大多数进程默认的 PRI 都是 80。

此外 nice 是有范围的!其取值范围是 - 20 至 19,一共 40 个级别。于是下面我们去尝试去更改processC进程的优先级。
注意:将进程优先级调高(即将 nice 值设置为负数)需要 root 用户进行操作!

3.修改进程优先级的 Linux 指令

  1. top命令
  2. 进入top后按 “r” -> 输入进程 PID -> 输入 nice 值

【Linux进程篇-----进程优先级】按下 “r”
【Linux进程篇-----进程优先级】

输入 -20
【Linux进程篇-----进程优先级】

再次[查看进程]的相关信息:
【Linux进程篇-----进程优先级】

我们发现进程的优先级确实改变了,但是我们能改变进程优先级有限[ − 20 , 19 ] [-20,19][−20,19],因为调度器不允许我们将一个进程设置的优先级太高,进而导致其他进程难以被调度。

4.一些其他的关于进程优先级的指令和函数调用

  • nice指令,nice 命令的功能是用于调整进程的优先级,合理分配系统资源。-n 参数是 nice 值的优先级别
    以 nice 值为 -5 的方式执行指定程序
    【Linux进程篇-----进程优先级】

查看进程优先级
【Linux进程篇-----进程优先级】

  • renice命令可以修改正在运行的进程的调度优先级
renice [-n] priority [-gpu] identifier

renice更改一个或多个进程的调度优先级。第一个参数是要使用的优先级值,另一个参数被表示为进程标识信息。
-g, 后面加组的 pgid, 改变一个组的进程优先级
-u, 后面加 user name 或 uid,改变一个用户所拥有的进程优先级。
-p, 后面加 pid ,改变一个进程的进程优先级。

【Linux进程篇-----进程优先级】

使用renice命令
【Linux进程篇-----进程优先级】

  • 函数调用

在 Linux 中关于改变进程优先级函数调用主要有两个:getpriority() 与setpriority()。

5.一些其他的关于进程优先级的指令和函数调用

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

二、环境变量

1.基本概念

环境变量 (environment variables) 一般是指在操作系统中用来指定操作系统运行环境的一些参数,环境变量通常具有某些特殊用途,在系统当中通常具有全局特性。

2.和环境变量相关的命令

  • env: 显示所有环境变量

【Linux进程篇-----进程优先级】

  • echo: 显示的变量值 (需要带上 $ 符号)
    【Linux进程篇-----进程优先级】

  • export: 设置一个新的环境变量,或者将本地[变量提升]成环境变量
    【Linux进程篇-----进程优先级】

  • unset: 清除环境变量

  • 【Linux进程篇-----进程优先级】

  • set: 显示本地定义的 shell 变量和环境变量
    【Linux进程篇-----进程优先级】

3.Linux 中的常见环境变量介绍

  • PATH : 指定命令的搜索路径

例如我们使用的 Linux 中 ls pwd命令,其实就是一个个 C 语言写的一个个小程序,为什么我们运行自己写的程序就要用./ + 自己的程序名 ,而我们运行ls pwd 从来不加./,这就和环境变量 PATH 有关了!
我们查看环境变量可以使用echo $环境变量命令:

【Linux进程篇-----进程优先级】

默认情况下我们使用的 Linux 指令会去 PATH 路径下寻找源程序,由于ls指令的路径位置就在 PATH 的环境变量中所以我们可以不用加./
我们现在尝试将我们的路径添加到 PATH 环境变量里面,来让我们的程序也不需要加./,这时我们就需要使用一个新的指令了:export
export令可以将本地变量提升成环境变量,于是我们将我们的路径添加到 PATH 中就可以这样写:

export PATH=$PATH:你要添加的路径

当然我们使用export命令是暂时将本地变量提升为环境变量,当我们退出云服务器或关机重启都会消除export暂时提升的环境变量,想要真正的修改我们要修改相应的配置文件。

当然我们还可以将我们写的程序拷贝到 Linux 的 PATH 默认路径下,这样我们也不用使用./了,在 Linux 中,把可执行程序,拷贝到系统默认路径下,让我们可以直接访问的方式,相当于 Linux 下软件的安装!

  • 环境变量的组织方式以及在 C 代码中如何获取环境变量

在 Shell 内部,环境变量其实是以环境变量表的方式进行维护的!
【Linux进程篇-----进程优先级】

此外环境变量还具有全局性,我们知道我们在 bash 下运行的程序其父进程都是 bash, 那么 bash 就可以将自己的环境变量传递给子进程,并在子进程中发挥作用!

  • 不同用户的环境变量是怎么形成的
    对于不同的用户其环境变量也并不相同

环境变量本质就是一个内存级的一张表,这张表由用户在登陆会统的时候,给特定用户形成属于自己的环境变量表。

在我们的家目录下有两个文件叫 .bashrc .bash_profile 在根目录下有一个bashrc的文件
【Linux进程篇-----进程优先级】
打开这些文件看看!
【Linux进程篇-----进程优先级】
【Linux进程篇-----进程优先级】

感谢良许老师的公众号,每天理解一点linux知识

来自:入门小站文章来源地址https://www.toymoban.com/news/detail-481619.html

到了这里,关于【Linux进程篇-----进程优先级】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 图解Linux进程优先级

    目录 1.什么是进程优先级? 2.进程优先级原理 3.查看进程优先级 4.修改进程优先级 4.1 setpriority函数原型 4.2 getpriority函数原型 4.3 sched_setscheduler函数原型 4.4 sched_getscheduler函数原型 4.5 sched_setparam函数原型 4.6 sched_getparam函数原型 Linux进程的优先级是用来确定在多个进程同时运行

    2024年02月05日
    浏览(15)
  • Linux—进程状态、僵尸进程、孤独进程、优先级

    📘北尘_ :个人主页 🌎个人专栏 :《Linux操作系统》《经典算法试题 》《C++》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 为了弄明白正在运行的进程是什么意思,我们需要知道进程的不同状态。一个进程可以有几个状态(在 Linux内核里,进程有时候也叫做任务)

    2024年02月05日
    浏览(17)
  • 【Linux】进程状态、进程优先级和进程切换

    作者简介:დ旧言~,目前大二,现在学习Java,c,c++,Python等 座右铭:松树千年终是朽,槿花一日自为荣。 目标:了解冯诺依曼体系结构与操作系统,掌握Linux的进程 毒鸡汤:一花凋零荒芜不了整个春天,一次挫折也荒废不了整个人生。 望小伙伴们点赞👍收藏✨加关注哟💕

    2024年02月04日
    浏览(18)
  • 【Linux】进程周边003之进程优先级

      👀 樊梓慕: 个人主页  🎥 个人专栏: 《C语言》 《数据结构》 《蓝桥杯试题》 《LeetCode刷题笔记》 《实训项目》 《C++》 《Linux》 🌝 每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.基本概念 2.PRI与NI 3.利用top命令更改已存在进程的nice值 4.通过renice命令更改进程

    2024年02月03日
    浏览(18)
  • 【Linux】进程优先级 && 进程切换 && 环境变量

    目录 一、进程优先级  1、优先级概念  2、优先级特点  3、修改Linux下的优先级 二、进程切换  1、进程特性  2、进程切换 三、环境变量  1、基本概念  2、常见环境变量  3、查看环境变量方法  4、PATH环境变量  5、和环境变量相关的命令  6、环境变量的组织方式  7、通过

    2024年02月11日
    浏览(17)
  • Linux_进程的优先级&&环境变量&&上下文切换&&优先级队列

    什么是优先级? 指定一个进程获取某种资源的先后顺序 本质是进程获取cpu资源的优先顺序 为什么要有优先级 进程访问的资源(CPU)是有限的 操作系统关于调度和优先级的原则:分时操作系统,基本的公平,如果进程因为长时间不被调整,就造成了饥饿问题 Linux的优先级特

    2024年04月09日
    浏览(18)
  • 【C++】优先级队列的基本概念以及其模拟实现

    🌏博客主页: 主页 🔖系列专栏: C++ ❤️感谢大家点赞👍收藏⭐评论✍️ 😍期待与大家一起进步! C++仿函数(function object)是一种可以像函数一样调用的对象。仿函数通常是一个类,它重载了函数调用运算符operator(),使得对象可以被调用。 仿函数就是基于函数模板生成

    2024年02月15日
    浏览(11)
  • 【Linux】进程优先级 + 环境变量

    在学完进程状态之后,本章我们将来学习一下环境变量,还有进程优先级等🙋🙋🙋…… 本文实验系统: CentOS 7.6 ~ 优先级是权限吗? 在之前我们讲解过什么是权限:👉 传送门 我们这里讲的优先级并不是权限,那么优先级到底是什么呢? 如果我们说权限是能不能的问题的

    2024年02月05日
    浏览(20)
  • Linux--进程状态与优先级

    进程指的是程序在执行过程中的活动。进程是操作系统进行资源分配和调度的基本单位 。 进程可以看作是程序的一次执行实体,它包含了程序代码、数据以及相关的执行上下文信息。操作系统通过创建、调度和管理多个进程来实现对计算机系统资源的有效利用。 每个进程都

    2024年02月01日
    浏览(17)
  • Linux进程状态及优先级

    本文已收录至《Linux知识与编程》专栏! 作者:ARMCSKGT 演示环境:CentOS 7 操作系统想管理好进程并不简单,对于Linux系统将进程分为不同的状态进行管理;例如运行,阻塞,休眠状态等等,每一种状态都有不同的效果,这样才能发挥他的全部功效,且进程之间也有优先级,本

    2024年02月03日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包