『 Linux 』进程优先级

文章目录

    • 什么是优先级
    • Linux下的进程优先级
      • PRI与NI
      • 使用top查看进程以及对进程的优先级的修改
    • 进程优先级的其他概念
      • 竞争性与独立性
      • 并发与并行


什么是优先级

优先级,顾名思义,即在同一环境下不同单位对同一个资源的享有顺序;
一般优先级高的单位将优先占有该资源;
在进程当中进程与进程之间也同样具有优先级,以占用CPU资源为例,其优先级高的进程将优先享有使用CPU资源的权力;
在计算机当中,由于CPU是有限的资源,当同时存在较多进程时将会需要以某种特定的方式竞争以使得能够优先对该资源进行使用,不仅是CPU,例如磁盘资源等都是有限的;
本质上进程中的优先级只是其进程的PCB结构体中的某个属性,调度器通过进程的优先级属性判断这个进程是否能优先占用某些资源;


Linux下的进程优先级

Linux下的进程优先级可以使用ps -l来查看;

while :; do ps -la |head -1 && ps -la | grep myproc ;sleep 1;echo ---------------------------------------------- ; done

这里使用该shell脚本来对进程状态进行查看(每隔一秒);
假设存在一个程序(myproc):

int main(){

  while(1){
    cout<<"hello world"<<endl;
    sleep(1);
  }
  return 0;
}

这是一段死循环的代码,在该程序中将会每隔一秒无限循环的打印hello world;
运行shell脚本并运行程序;

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
----------------------------------------------
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1002  3686 14787  0  80   0 -  3307 hrtime pts/2    00:00:00 myproc

当脚本运行后即可以看到该进程的属性;

  • UID

    表示该进程执行者的身份;

  • PID,PPID

    表示该进程与其父进程的PID;

  • PRI

    表示该进程的优先级,该值越小越早被执行;

  • NI

    表示该进程的nice值;


PRI与NI

  • PRI

    PRI为进程的优先级,但是这个优先级与平时所理解的优先级不同;
    PRI的值为越小其优先级越高;

  • NI

    NI为nice值,nice值的取值范围为 [-20,19]共40个级别;
    且优先级PRI为PRI(new) = PRI(old) + nice值;
    假设一个进程的初始优先级为80,那么它的优先级可变动的范围即为[60,99];
    nice值一般用来对进程的优先级进行修正;


使用top查看进程以及对进程的优先级的修改

在Linux中除了可以使用ps命令对进程状态进行查看以外还可以使用top命令对进程进行查看;

请添加图片描述

  • 修改进程优先级:

    修改进程优先级即使用top命令打开资源管理器;
    再按r指令进入进程优先级修改;
    输入进程PID后最后输入nice值;

    # 修改前
    PID USER    PR  NI   VIRT   RES    SHR S  %CPU %MEM     TIME+ COMMAND 
    4872 _user    20   0  13228  1296   1112 S   0.0  0.1   0:00.00 myproc  
    # 修改后
    PID USER    PR  NI   VIRT   RES    SHR S  %CPU %MEM     TIME+ COMMAND 
    4872 _user    39  19  13228  1296   1112 S   0.0  0.1   0:00.00 myproc  
    
    

进程优先级的其他概念

竞争性与独立性

  • 竞争性

    在一个CPU中,进程与进程之间往往存在竞争关系,由于进程的需求大于CPU资源的数量,所以导致了在一个CPU中的进程将会以其优先级进行竞争;

  • 独立性

    进程与进程之间是具有独立性的,即一个进程的结束与创建并不会影响另一个进程的操作;
    在父进程与子进程当中也能很好的体现这一点,即父进程结束不会影响子进程,子进程结束也不会影响父进程;


并发与并行

  • 并发

    并发即为在一个cpu中,其调度队列中往往存在多个进程,在一个CPU中一个进程不会对其资源占用过久,而是以一种分时多任务的形式对其进行进程进行处理从而到达推进所有进程的进度;

请添加图片描述

  • 并行

    并行即为多个cpu对其属于自己的进程进行管理;

请添加图片描述

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

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

相关文章

海翔云平台 getylist_login.do SQL 注入漏洞复现

0x01 产品简介 海翔云平台一站式整体解决方案提供商&#xff0c;业务涵盖 批发、连锁、零售行业ERP解决方案、wms仓储解决方案、电商、外勤、移动终端&#xff08;PDA、APP、小程序&#xff09;解决方案。 0x02 漏洞概述 海翔云平台getylist_login.do接口处存在SQL注入漏洞&am…

wmvcore.dll丢失怎么办?解决电脑出现wmvcore.dll丢失问题5个方法

wmvcore.dll缺失5个解决方法与wmvcore.dll丢失原因及文件介绍 引言&#xff1a; 在日常使用电脑的过程中&#xff0c;我们可能会遇到一些错误提示&#xff0c;其中之一就是wmvcore.dll缺失。wmvcore.dll是Windows Media Video编码解码相关动态链接库文件之一&#xff0c;它对…

vue3 element plus 表单验证 数组嵌套对象格式验证 动态验证等

基本结构 model 表单数据对象 rules 验证对象 prop model 的键名 <template><el-form ref"ruleFormRef" :model"ruleForm" :rules"rules"><el-form-item label"手机号" prop"mobile"><el-input v-mod…

使用opencv实现更换证件照背景颜色

1 概述 生活中经常要用到各种要求的证件照电子版&#xff0c;红底&#xff0c;蓝底&#xff0c;白底等&#xff0c;大部分情况我们只有其中一种&#xff0c;本文通过opencv实现证件照背景的颜色替换。 1.1 opencv介绍 OpenCV&#xff08;Open Source Computer Vision Librar…

Java第十二篇:连接安全版kafka(Kerberos认证)出现的问题解答

Could not find a ‘KafkaClient’ entry in the JAAS configuration 问题现象 问题原因 原因没有找到&#xff0c;怎么引起的倒是很清楚。原因就是找到不到指定路径下的kafka_client_jaas.conf文件&#xff0c;别看我的路径带了两个//&#xff0c;但没问题的&#xff0c;等同…

Semaphore源码解析

Semaphore源码解析 文章目录 Semaphore源码解析一、Semaphore二、Semaphore 中 Sync、FairSync、NonfairSync2.1 Sync、FairSync、NonfairSync2.2 NonfairSync 下的 tryAcquireShared()2.3 FairSync下的 tryAcquireShared()2.4 tryReleaseShared() 三、semaphore.acquire()四、…

0 NLP: 数据获取与EDA

0数据准备与分析 二分类任务&#xff0c;正负样本共计6W&#xff1b; 数据集下载 https://github.com/SophonPlus/ChineseNlpCorpus/raw/master/datasets/online_shopping_10_cats/online_shopping_10_cats.zip 样本的分布 正负样本中评论字段的长度 &#xff0c;超过500的都…

工具及方法 - 如何阅读epub文件:使用Adobe Digital Editions

EPUB&#xff08;Electronic Publication的缩写&#xff0c;电子出版&#xff09;是一种电子图书标准&#xff0c;由国际数字出版论坛&#xff08;IDPF&#xff09;提出&#xff1b;其中包括3种文件格式标准&#xff08;文件的扩展名为.epub&#xff09;&#xff0c;这个格式已…

哈希和unordered系列封装(C++)

哈希和unordered系列封装 一、哈希1. 概念2. 哈希函数&#xff0c;哈希碰撞哈希函数&#xff08;常用的两个&#xff09;哈希冲突&#xff08;碰撞&#xff09;小结 3. 解决哈希碰撞闭散列线性探测二次探测代码实现载荷因子&#xff08;扩容&#xff09; 开散列哈希桶代码实现扩…

订单管理系统怎么用?有哪些好用的订单管理系统?

订单管理系统怎么用&#xff1f;有哪些好用的订单管理系统&#xff1f;阅读本文你将了解&#xff1a;1、订单管理系统的核心功能&#xff1b;2、订单管理系统的拓展功能&#xff1b;3、订单管理系统推荐。 订单管理系统在当今商业环境中扮演着至关重要的角色。它是企业内部运营…

UE4 UE5 使用SVN控制

关键概念&#xff1a;虚幻引擎中使用SVN&#xff0c;帮助团队成员共享资源。 1. UE4/UE5项目文件 如果不需要编译的中间缓存&#xff0c;则删除&#xff1a; DerivedDataCache、Intermediate、Saved 三个文件夹 2.更新、上传

GAN:GAN论文学习

论文&#xff1a;https://arxiv.org/pdf/1406.2661.pdf 发表&#xff1a;2014 一、GAN简介&#xff1a;Generative Adversarial Network GAN是由Ian Goodfellow于2014年提出&#xff0c;GAN&#xff1a;全名叫做生成对抗网络。GAN的目的就是无中生有&#xff0c;以假乱真。 …

解决Maven项目jar包下载失败的问题

文章目录 配置国内的Maven源引入正确的settings.xml文件重新下载jar包对后面要创建的新项目也统一配置仍然失败的解决办法 配置国内的Maven源 引入正确的settings.xml文件 如果该目录下的 settings.xml文件不存在或者错误&#xff0c;要创建一个 settings.xml文件并写入正确的…

【代码】基于卷积神经网络(CNN)-支持向量机(SVM)的分类预测算法

程序名称&#xff1a;基于卷积神经网络&#xff08;CNN&#xff09;-支持向量机&#xff08;SVM&#xff09;的分类预测算法 实现平台&#xff1a;matlab 代码简介&#xff1a;CNN-SVM是一种常用的图像分类方法&#xff0c;结合了卷积神经网络&#xff08;CNN&#xff09;和支…

Java 基础学习(二)运算符与分支流程控制

1 运算符 1.1 运算符概述 1.1.1 运算符概述 运算符是一种告诉计算机执行特定的数学或逻辑等操作的符号。Java运算符号包括&#xff1a;数学运算符、关系运算符、逻辑运算符、赋值运算符号、字符串连接运算符。计算机本质上只能处理数字&#xff0c;处理数字的最常见的方式就…

使用std::mutext与std::condition_variables实现信号量

1. 信号量的定义 2. 使用std::mutext与std::condition_variables实现信号量 代码来自&#xff1a;https://zhuanlan.zhihu.com/p/462668211 #ifndef _SEMAPHORE_H #define _SEMAPHORE_H #include <mutex> #include <condition_variable> using namespace std;cla…

【算法】20231128

这里写目录标题 一、55. 跳跃游戏二、274. H 指数三、125. 验证回文串 一、55. 跳跃游戏 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&am…

yolov8-seg 分割推理流程

目录 一、分割检测 二、图像预处理 二、推理 三、后处理与可视化 3.1、后处理 3.2、mask可视化 四、完整pytorch代码 一、分割检测 注&#xff1a;本篇只是阐述推理流程&#xff0c;tensorrt实现后续跟进。 yolov8-pose的tensorrt部署代码稍后更新&#xff0c;还是在仓…

git的创建以及使用

1、上传本地仓库 首先确定项目根目录中没有.git文件&#xff0c;有的话就删了&#xff0c;没有就下一步。在终端中输入git init命令。注意必须是根目录&#xff01; 将代码存到暂存区 将代码保存到本地仓库 2、创建git仓库 仓库名称和路径&#xff08;name&#xff09;随便写…

4P营销模型

4P营销模型 菲利普科特勒在其畅销书《营销管理&#xff1a;分析、规划与控制》中进一步确认了以4P为核心的营销组合方法. 模型介绍 「4P营销模型」是市场营销中的经典理论&#xff0c;代表了产品、价格、促销和渠道四个要素。这些要素是制定市场营销策略和实施计划的关键组成部…