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

 

👀樊梓慕:个人主页

 🎥个人专栏:《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
  2. "r"
  3. 输入进程PID
  4. 输入nice值 
  5.  按q退出,ps -al查看下优先级是否更改

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


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

 实例:renice nice pid

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

如:


5.四个重要概念

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

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

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

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

🌟~ 点赞收藏+关注 ~🌟

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/240527.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用护眼台灯能不能有效预防近视?分享高品质的护眼台灯

在近几年,儿童青少年近视率非常高。很多家长认为孩子近视的原因是没有养成正确的用眼习惯,例如经常趴桌子写作业、眯眼看书等,但实际上这些坏习惯是因为没有合适的光线而导致的。所以安排一盏合适的台灯给孩子学习是非常重要的。 目前而言最好…

图片压缩软件4K Image Compressor Pro mac特点介绍

4K Image Compressor Pro mac是一款专业的图片压缩软件,它可以在不损失图像质量的前提下,优化图片文件的大小,从而节省存储空间,方便在社交媒体上共享图片,并优化网站加载速度。 4K Image Compressor Pro mac软件特点 …

29、Windows安全配置

文章目录 一、Windows安全配置简介二、账户策略2.1 密码策略2.2 账户锁定策略 三、本地策略3.1 用户权限分配 四、安全设置4.1 账户4.2 审核4.3 设备4.4交互式登录4.5 网络访问4.6 网络安全4.7 用户账户控制4.8 防火墙配置 五、高级审核策略设置5.1 账户登录5.2 账户管理5.3 对…

MDM主数据平台如何实现质量管控

当企业业务以及信息化建设发展到一定阶段后,都不可避免地要进行信息化和数据的治理工作,而主数据治理则是数据治理的基础。随着信息系统和业务的增加,系统打通与数据集成共享必然会成为企业信息化建设的瓶颈,而要实现系统集成&…

怪兽吃糖果

欢迎来到程序小院 怪兽吃糖果 玩法:左右飞出的糖果,点击鼠标糖果即为怪兽吃掉,不同的糖果不同的分数奖励, 吃不掉的糖果会扣除一次生命,共三次生命值,点击炸弹游戏结束,快去吃糖果吧^^开始游戏…

Pyhon基于YOLOV实现的车辆品牌及型号检测项目源码+模型+项目文档

项目运行运行录屏: Pyhon基于YOLOV实现的车辆品牌及型号检测项目运行录屏 完整代码下载地址:Pyhon基于YOLOV实现的车辆品牌及型号检测项目 项目背景: 车辆检测及型号识别广泛应用于物业,交通等的管理场景中。通过在停车场出入口…

在Spring Cloud中实现Feign声明式服务调用客户端

如果你学过Spring Cloud,你应该知道我们可以通过OpenFeign从一个服务中调用另一个服务,我们一般采用的方式就是定义一个Feign接口并使用FeignClient注解来进行标注,feign会默认为我们创建的接口生成一个代理对象。 当我们在代码中调用Feign接…

Leetcode143 重排链表

重排链表 题解1 线性表 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → … → Ln - 1 → Ln请将其重新排列后变为: L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → …不能只是单纯的改变节点内部的值,而是需要实际…

【Week P1】 MNIST手写数字识别

文章目录 一、环境配置1.1 安装环境1.2 设置环境,开始本文内容 二、准备数据三、搭建网络结构四、开始训练五、查看训练结果六、总结2.1 ⭐ torchvision.datasets.MNIST详解(Line4 & Line9)2.2 ⭐ torch.utils.data.DataLoader详解(Line4 & Line9)2.3 ⭐ sq…

C类核心论文复现:基于电力系统碳排放流理论的碳排放分摊模型研究程序代码!

本程序参考中文核心论文《基于电力系统碳排放流理论的碳排放分摊模型研究》,文中运用潮流追踪对系统网损引起的碳排放进行分配定量,最后得到系统实时碳排放的产权分配结果,程序较为简单和基础,具有较强的可扩展性和适用性&#xf…

路由器静态路由的配置

路由器静态路由的配置步骤如下: 进入系统视图。输入命令sys进入系统视图。配置路由器的接口IP地址。命令格式为int g0/0/0,其中g0/0/0表示路由器的接口,可以根据实际情况进行修改。然后使用命令ip add配置接口的IP地址。配置下一跳地址。在静…

【IDEA】IntelliJ IDEA创建一个Maven项目

在IDEA中创建Maven项目,前提是已经安装配置好Maven环境 。 本文主要使用的是IntelliJ IDEA 2022.2.1 (Community Edition) 1.创建一个新project:File>Project 2.修改Maven配置:File>Settings>搜索maven 创建好的工程如下: src/main…

应用在MiniLED电视领域中的MiniLED背光技术

众所周知,液晶技术发展至今仍旧无法避免自身的一些短板。随着消费升级等因素的影响,大家对于电视画质层面有了更高的需求与期待。所以在近的几年里,大厂们都在寻求能够替代LCD液晶的更优秀的显示技术。这其中,Mini LED势头惊人&am…

音乐制作软件Studio One mac软件特点

Studio One mac是一款专业的音乐制作软件,由美国PreSonus公司开发。该软件提供了全面的音频编辑和混音功能,包括录制、编曲、合成、采样等多种工具,可用于制作各种类型的音乐,如流行音乐、电子音乐、摇滚乐等。 Studio One mac软件…

iOS应用程序签名、重签名及安装测试优化指南

iOS应用程序的签名、重签名和安装测试 ipa编译出来后,或者ipa进行修改后,需要进行重新签名才能安装到测试手机,或者提交app store供apple 商店审核上架。ipaguard有签名和重签名功能,能在windows,mac,和li…

opencv cpp的安装

搞了半天, 可算弄好了. vs opencv cpp: https://blog.csdn.net/weixin_50918736/article/details/130176469?spm1001.2101.3001.6650.1&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-130176469-blog-127627204.235%5Ev39%5Epc_relev…

QDialog子类的使用

背景: 我用Qt designer实现了如下效果: 但在实际使用的时候,发现OK和Cancel按钮点是点不动的。 解决方法: 需要手动添加相关信号槽函数: connect(ui.buttonBox, SIGNAL(accepted()), this, SLOT(accept()));connect…

C语言定长数组 变长数组 柔性数组

C语言定长数组 变长数组 柔性数组 文章目录 C语言定长数组 变长数组 柔性数组1. 定长数组2. 变长数组3. 柔性数组3.1 结构体的大小3.2 柔性数组的使用 1. 定长数组 在C99标准之前,C语言在创建数组的时候,数组的大小只能使用常量,常量表达式来…

后端只打印了info等级的日志?-SpringBoot日志打印-Slf4j

在调用log变量的方法来输出日志时,有以上5个级别对应的方法,从不太重要,到非常重要 调用不同的方法,就会输出不同级别的日志。 trace:跟踪信息debug:调试信息info:一般信息warn:警告…

一个最小的物联网系统设计方案及源码(一)——系统组成

关于物联网 物联网(Internet of Things,缩写IOT)是一个基于互联网、传统电信网等信息承载体,让所有能够被独立寻址的普通物理对象实现互联互通的网络。 物联网一般为无线网,由于每个人周围的设备可以达到一千至五千个&…