Linux基础之进程的优先级

目录

一、进程优先级的概念

二、进程优先级的查看

三、怎么修改进程优先级 

四、进程饥饿


一、进程优先级的概念

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

       那为什么要设置一个优先级的概念呢,其实本质上就是因为我们资源不够,不能一次性满足我所有进程的需求。

       这里我们来拿我们的优先级和我们的权限来对比一下(其实这两本质上搭不上关系,这里是来促进我们对一些概念的理解)。

优先级:其保证是可以获得一定的资源的,什么时候取得资源主要关注的是时间问题
权限:其主要关注的是能不能得到某中资源的问题

二、进程优先级的查看

在我们的Linux或者我们的unix系统中,我们可以使用一些指令来查看我们进程的优先级:

ps -l 或者 ps  -al 

 这里给大家演示一下:

其中:

  • UID : 代表执行者的身份
  • PID : 代表这个进程的代号
  • PPID :代表这个进程是由哪个进程发展衍生而来的,亦即父进程的代号
  • PRI :代表这个进程可被执行的优先级,其值越小越早被执行
  • NI :代表这个进程的nice值

三、怎么修改进程优先级 

       要想修改我们的进程优先级,我们首先就要先理解两个概念:RAI 和 NI ,那么接下来就来先给大家介绍一下这两个概念:

  • PRI也还是比较好理解的,即进程的优先级(priority),或者通俗点说就是程序被CPU执行的先后顺序,此值越小进程的优先级别越高,其范围是 60 到 99,共40个等级。在OS中,我们的系统的默认优先级是80,可以从我们刚才的图片中看出。
  • 那NI呢?就是我们所要说的nice值了,其表示进程可被执行的优先级的修正数值
  • PRI值越小越快被执行,那么加入nice值后,将会使得PRI变为:

                                                    PRI(new)=PRI(old)+nice                                                           
     
  • 这样,当nice值为负值的时候,那么该程序将会优先级值将变小,即其优先级会变高,则其越快被执行所以,调整进程优先级,在Linux下,就是调整进程nice值。
  • nice其取值范围是-20至19,一共40个级别。

 那到底要怎么修改我们的优先级呢?首先先写一段简单的代码:

我们再来讲讲我们修改进程优先级的流程:

  • 先使用我们的top指令
  • 进入top后按 r 
  • 输入我们想要修改的进度的PID
  • 输入NICE值

给大家演示一下:
先让我们的程序跑起来,然后进入我们的top,并输入我们的 r 后,输入想要修改进程的PID  

输入我们的Nice值 (若我们输入的值大于19,则会被修正为19,若小于-20则会被修正为-20)

修改完成 用ps -al 进行查看

       这样我们一个进程的优先级就被修改成功了,但是我们这是让我们的优先级变小了,如果想让我们的优先级变大,普通用户的权限是不够的,要使用我们的sudo 指令 或者 切换成我们的root权限去修改。

四、进程饥饿

       为什么我们的优先级要被限制在60至99间呢?
       我相信大家都很好奇这个问题,为什么我们的优先级不能被设置成无限大或者无限小呢,这是为什么呢?
       这是因为我们的OS在调度进程时,为了去实现一个平衡,如果随意的让用户去设置我们进程的优先级的话,就会很有可能导致一些优先级的进程一直被调度不到,长时间的得不到CPU的资源,那这种现象我们就称为进程饥饿。

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

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

相关文章

从零入门激光SLAM(十七)——SLAM中为什么用ESKF误差卡尔曼滤波器

上一节,介绍了卡尔曼滤波的基本原理,但在SLAM中却使用ESKF,让我们一起看看具体的原因是什么吧 一、误差卡尔曼滤波器ESKF(Error State Kalman Filter) 1.1动机 在常规的卡尔曼滤波器中,需要假定系统的状态服从高斯分布&#xf…

语法分析-文法

如果对于一部文法中,存在至少一个句子有两个或者两个以上的语法树则该文法是二义性的。 我们可以以上面的例子进行解释,对于第棵个语法树,我们可以看到是先进行了加法运算再进行的乘法运算,因为需要先把EE作为整体运算完后再成为E…

github新手用法

目录 1,github账号注册2,github登录3,新建一个仓库4,往仓库里面写入东西或者上传东西5, 下载Git软件并安装6 ,获取ssh密钥7, 绑定ssh密钥8, 测试本地和github是否联通9,从…

研发数据在企业内部多重传输场景,怎样才能有效响应?

研发数据因行业不同包含的种类各异,主要有设计和仿真数据、研发投入、进展和成果数据、生产过程数据、维护和保养数据、质量数据等,企业研发数据对企业而言具有至关重要的意义。特别是以研发为核心业务及定位的企业, 如半导体 IC 设计、生物制…

淘宝购物必备神器,淘宝商品评论电商API接口告诉你真实惠品质好!

众所周知,淘宝作为国内最大的电商平台,拥有数以亿计的商品以及海量的评论。然而,由于淘宝上的商品数量庞大,品质参差不齐,买家往往难以决策。此外,有些商品的评论可信度也受到一定的质疑,很难了…

SSM框架打造的高效稳定网上购物商城管理系统

作者介绍:✌️大厂全栈码农|毕设实战开发,专注于大学生项目实战开发、讲解和毕业答疑辅导。 🍅获取源码联系方式请查看文末🍅 推荐订阅精彩专栏 👇🏻 避免错过下次更新 Springboot项目精选实战案例 更多项目…

冯喜运:5.16黄金多头或挑战2400关口,原油最新行情分析

【黄金消息面分析】:在最新数据显示通胀回落和零售销售疲软后,交易员评估美联储转向货币宽松的时机和幅度,黄金市场出现了一些新的动力。根据周三(5月15日)公布的数据,衡量美国潜在通胀的指标4月份出现六个…

C++进阶之路:何为默认构造函数与析构函数(类与对象_中篇)

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

用AI帮你写简历,入职啦简历编辑器

简历的重要性 在当前就业形势严峻、竞争加剧的背景下,获取理想工作的难度与日俱增。此时,一份精心准备、亮点突出的简历,成为了您脱颖而出、成功获得面试机会乃至工作offer的关键。面对HR有限的审阅时间和众多应聘者的激烈角逐,如…

【高阶数据结构(四)】图的最短路径问题

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:高阶数据结构专栏⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习更多数据结构   🔝🔝 高阶数据结构 1. 前言2. 单源最短…

STAR-Echo:一种使用时空分析和基于Transformer的影像组学模型预后慢性肾脏病患者 MACE 预后的新型生物标志物

文章目录 STAR-Echo: A Novel Biomarker for Prognosis of MACE in Chronic Kidney Disease Patients Using Spatiotemporal Analysis and Transformer-Based Radiomics Models摘要方法实验结果 STAR-Echo: A Novel Biomarker for Prognosis of MACE in Chronic Kidney Disease…

Stable Diffusion【进阶篇】:真人漫改之图生图实现

所谓真人漫改,就是把一张真人的图片生成一张新的二次元的图片,在Stable Diffusion中,有很多方式实现,其中通过图生图的方式是最常用的方式,大概1-3分钟就可以完成,本文我们系统的讲解一下。 、 下面我们来详…

YOLOv8火焰与烟雾智能检测系统

项目概述: 本项目旨在开发一款高效、实时的火焰与烟雾检测系统,利用先进的深度学习技术——YOLOv8,为安全监控领域提供智能化解决方案。系统不仅能够准确识别视频流或静态图像中的火焰与烟雾,还配备了用户友好的图形界面&#xff…

废品回收微信小程序基于FastAdmin+ThinkPHP+UniApp

一款基于FastAdminThinkPHPUniApp开发的废品回收系统,适用废品回收站、再生资源回收公司上门回收使用的小程序。 一、FastAdmin框架特色功能及优势 模块化开发:控制器、模型、视图、JS一一对应,使用RequireJS进行插件机制,支持插…

数据库-索引(高级篇)

文章目录 索引概念?索引演示?索引的优劣?为什么使用索引就快?本篇小结 更多相关内容可查看 索引概念? 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统…

uniapp 配置请求代理+请求封装

uniapp官网提供了三种方式:什么是跨域 | uni-app官网 1. 通过uniapp自带浏览器 打开项目是不存在跨域的 第二种方式: "h5" : {"template" : "static/index.html","devServer": {"proxy": {&quo…

信创基础硬件之整机

整机是成套或整体单机、单台形式的机电产品,由硬件系统(hardware system)和软件系统(software system)两部分组成的,包括主板、内存条、硬盘、CPU、光驱、机箱、显示器、键盘、鼠标、音响等部件。 服务器作为在网络环境下为客户机提供各种服务、特殊专用…

Redis:list类型

文章目录 list常见命令lpushlrangelpushxrpushrpushxlpop和rpoplindexlinsertllenlremltrimlset 阻塞版本命令blpop list 初步认识 在Redis中,对于list这种数据类型来说,更像是一种数组或者是顺序表,下面展示其最基本的用法 值得注意的是&a…

Python3 笔记:二进制的转换

十进制是逢十进一,二进制就是逢二进一。 十进制里最大的数字是9,二进制里最大的数字是1。 11010010001000010000010000001000000010^0110^11010^210010^3100010^41000010^510000010^6100000010^7100000002^012^122^242^382^4162^5322^6642^7128 1、十进…

页面布局(H5基础)(上)

元素的显示模式 元素的显示模式 块级元素 页面中独占一行,不会与任何元素公用一行,从上到下排列 宽度默认是元素的高度,高度默认内容撑开 可以通过css设置宽高 行内元素 在页面中不独占一行,一行中不能容纳的行内元素&#x…